Index: leahi.pro =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- leahi.pro (.../leahi.pro) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ leahi.pro (.../leahi.pro) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -239,6 +239,8 @@ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.h \ \ # ---------- Models - TD - Adjustment - In-Treatment sources/model/td/adjustment/treatment/MTreatmentAdjustSalineResponse.h \ + \ # ---------- Models - TD - Adjustment - End-Treatment + sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.h \ \ # ---------- Models - confirm sources/model/confirm/MDuetConfirmHDi.h \ \ # ---------- Models - POST @@ -292,7 +294,6 @@ \ # ---------- Models - HD - Adjustment - End-Treatment sources/model/hd/adjustment/treatment/MTreatmentAdjustRinsebackResponse.h \ sources/model/hd/adjustment/treatment/MTreatmentAdjustRecirculateResponse.h \ - sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.h \ \ # ---------- Models - HD - Adjustment - Post-Treatment sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustRequests.h \ sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.h \ @@ -557,6 +558,8 @@ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationStateResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationEditResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationConfirmResponse.cpp \ + \ # ---------- Models - TD - Adjustment - End-Treatment + sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.cpp \ \ # ---------- Models - CONFIRM sources/model/confirm/MDuetConfirmHDi.cpp \ \ # ---------- Models - POST @@ -607,7 +610,6 @@ \ # ---------- Models - HD - Adjustment - End-Treatment sources/model/hd/adjustment/treatment/MTreatmentAdjustRinsebackResponse.cpp \ sources/model/hd/adjustment/treatment/MTreatmentAdjustRecirculateResponse.cpp \ - sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.cpp \ \ # ---------- Models - HD - Adjustment - Post-Treatment sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.cpp \ sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustDisposablesRemovalConfirmResponse.cpp \ Index: leahi.qrc =================================================================== diff -u -rf2aa3ee850de1023cfc011b845ed0364d251b749 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- leahi.qrc (.../leahi.qrc) (revision f2aa3ee850de1023cfc011b845ed0364d251b749) +++ leahi.qrc (.../leahi.qrc) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -35,6 +35,7 @@ sources/gui/qml/dialogs/AlarmListDialog.qml sources/gui/qml/dialogs/LockDialog.qml sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml + sources/gui/qml/dialogs/EndTreatmentDialog.qml sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml @@ -104,6 +105,8 @@ resources/images/backspace.png resources/images/Vitals.png resources/images/Vitals_Red.png + resources/images/Lock-disabled.png + resources/images/complete_check.png sources/gui/qml/components/MainMenu.qml @@ -164,6 +167,7 @@ sources/gui/qml/components/AlarmButtonRow.qml sources/gui/qml/components/BaseComboBox.qml sources/gui/qml/components/VitalsButton.qml + sources/gui/qml/components/TreatmentCompleteButton.qml sources/gui/qml/compounds/PressureRangeSlider.qml Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -405,10 +405,9 @@ * \param vData - Data model contains treatment end adjustment state. * \return void */ -void MessageDispatcher::onAdjustment(const AdjustTreatmentEndRequestData &vData) +void MessageDispatcher::onAdjustment(const AdjustTreatmentEndRequestData &) { QVariantList mData; - mData += vData.requestedState; onActionTransmit(GuiActionType::ID_AdjustTreatmentEndReq, mData); } Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -234,7 +234,7 @@ {Gui::GuiActionType::ID_AdjustRecirculateRsp , 2 * 4 }, // 2 parameters each 4bytes // ---- Treatment End - {Gui::GuiActionType::ID_AdjustTreatmentEndReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustTreatmentEndReq , 0 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AdjustTreatmentEndRsp , 2 * 4 }, // 2 parameters each 4bytes // ---- Post-Treatment Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r9048646630717f980a852df54349805ba63773e0 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 9048646630717f980a852df54349805ba63773e0) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -258,7 +258,7 @@ // End-Treatment case Gui::GuiActionType::ID_AdjustRinsebackReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRinsebackRequestData ); break; case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRecirculateRequestData ); break; - case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTreatmentEndRequestData ); break; + case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustTreatmentEndRequestData ); break; // Post-Treatment case Gui::GuiActionType::ID_AdjustPatientDisconnectNotifyReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionNotifyRequestData ); break; case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionConfirmRequestData ); break; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -275,8 +275,8 @@ ID_AdjustRecirculateRsp = 0x5500, // 85 // Treatment End - ID_AdjustTreatmentEndReq = 0x5700, // 87 - ID_AdjustTreatmentEndRsp = 0x5800, // 88 + ID_AdjustTreatmentEndReq = 0xDA00, // 87 + ID_AdjustTreatmentEndRsp = 0xDB00, // 88 // Post-Treatment // Patient Disconnect Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -r9048646630717f980a852df54349805ba63773e0 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 9048646630717f980a852df54349805ba63773e0) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -112,6 +112,13 @@ rightMargin : _headerButtonRow.spacing } + TreatmentCompleteButton { id : _treatmentCompleteButton + extraSpace : _headerButtonRow.spacing + visible : vTDTreatmentStates.txEnd + + onPressed : _endTreatmentDialog.open() + } + VitalsButton { id : _vitalsButton extraSpace : _headerButtonRow.spacing visible : vTDOpMode.preTreatment || Index: sources/gui/qml/components/IconButton.qml =================================================================== diff -u -rc843f1d6a805119ecadfa2c24f309f77e7637830 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/components/IconButton.qml (.../IconButton.qml) (revision c843f1d6a805119ecadfa2c24f309f77e7637830) +++ sources/gui/qml/components/IconButton.qml (.../IconButton.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -36,5 +36,7 @@ width : iconSize fillMode: Image.PreserveAspectFit source : iconImageSource + smooth: true + mipmap: true } } Index: sources/gui/qml/components/TreatmentCompleteButton.qml =================================================================== diff -u --- sources/gui/qml/components/TreatmentCompleteButton.qml (revision 0) +++ sources/gui/qml/components/TreatmentCompleteButton.qml (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -0,0 +1,34 @@ +import QtQuick 2.12 + +import "qrc:/components" +import "qrc:/globals" + +IconButton { id : _root + iconSize : Variables.headerIconDiameter + iconImageSource : "qrc:/images/iCompleteCheck" + + Rectangle { id: _ring + anchors.centerIn: parent + color : Colors.transparent + width : Variables.headerIconDiameter + radius : width + height : width + + border { + width: 10 + color: "#6FC66B" + } + + SequentialAnimation on scale { + loops : Animation.Infinite + running : true + NumberAnimation { from: 0.9; to: 1.1; duration: 1000; easing.type: Easing.InOutQuad } + } + + SequentialAnimation on opacity { + loops : Animation.Infinite + running : true + NumberAnimation { from: 1.0; to: 0.0; duration: 1000; easing.type: Easing.InOutQuad } + } + } +} Index: sources/gui/qml/dialogs/ConfirmDialog.qml =================================================================== diff -u -rf8e37a0cbb537edceebee7a7c5f2676f497d1e26 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/dialogs/ConfirmDialog.qml (.../ConfirmDialog.qml) (revision f8e37a0cbb537edceebee7a7c5f2676f497d1e26) +++ sources/gui/qml/dialogs/ConfirmDialog.qml (.../ConfirmDialog.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -34,7 +34,12 @@ property alias cancelText : _cancelTouch.textString property alias cancelVisible : _cancelTouch.visible property bool autoClose : true + property int messageTextVerticalOffset : Variables.defaultMargin * -3 + property int footerBottomMargin : Variables.notificationHeight + Variables.minVGap + height : Variables.smallDialogHeight + width : Variables.smallDialogWidth + function footerUpdate() { _footer.update() } @@ -44,30 +49,43 @@ height : Variables.mainMenuHeight anchors.top : parent.top anchors.topMargin : Variables.minVGap2 // Since it doesnt have border, it looks too close to top border. - clip : true + clip : true + font.weight : Font.DemiBold } TitleText { id: _messageText - anchors.centerIn : parent + anchors.centerIn : parent + anchors.verticalCenterOffset: _root.messageTextVerticalOffset// adjust text up to add more space from bottom buttons width : parent.width height : Variables.mainMenuHeight * 4 // title + reason + 2*Gap clip : true text : qsTr("Are you sure?") } Footer { id: _footer - childrenWidth: 350 + anchors.horizontalCenter : parent.horizontalCenter + anchors.bottomMargin : _root.footerBottomMargin + + childrenWidth: Variables.defaultButtonWidth children: [ TouchRect { id : _cancelTouch - textString : qsTr("CANCEL") + textString : qsTr("Cancel") + height : Variables.defaultButtonHeight + isDefault : true + text.font.pixelSize : Fonts.fontPixelConfirm + text.font.weight : Font.Medium + onPressed : { rejected() if ( autoClose ) close() } }, - TouchRect { id : _confirmTouch - textString : qsTr("CONFIRM") - onPressed : { + ConfirmButton { id : _confirmTouch + height : Variables.defaultButtonHeight + anchors.margins : 0 + anchors.top : undefined + anchors.right : undefined + onClicked: { accepted() if ( autoClose ) close() } Index: sources/gui/qml/dialogs/EndTreatmentDialog.qml =================================================================== diff -u --- sources/gui/qml/dialogs/EndTreatmentDialog.qml (revision 0) +++ sources/gui/qml/dialogs/EndTreatmentDialog.qml (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -0,0 +1,37 @@ +import QtQuick 2.12 +import "qrc:/globals" +import "qrc:/components" + +ConfirmDialog { id: _root + messageText : qsTr("Dialysis Treatment Complete!") + confirmText : qsTr("Stay On Treatment") + cancelText : qsTr("End Treatment") + + y : Math.round((Variables.applicationHeight - height) / 2) - Variables.headerHeight + width : 600 + height : 600 + backgroundColor : Colors.darkDialogColor + messageTextVerticalOffset : Variables.defaultMargin * -1 + footerBottomMargin : Variables.defaultMargin * 3 + + Image { id : _iconImage + objectName: "iconImage" + + anchors { + top : parent.top + topMargin : Variables.defaultMargin * 3 + horizontalCenter: parent.horizontalCenter + } + + fillMode: Image.PreserveAspectFit + source : "qrc:/images/iCompleteCheck" + } + + Connections { target : vTreatmentAdjustmentEnd + function onAdjustmentTriggered ( vValue ) { + if ( ! vTreatmentAdjustmentEnd.adjustment_Accepted ) { + // TODO Update to show rejection message here vTreatmentAdjustmentEnd.text() + } + } + } +} Index: sources/gui/qml/dialogs/LockDialog.qml =================================================================== diff -u -r204d5f7514be78430a667297ced829bd104880d5 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/dialogs/LockDialog.qml (.../LockDialog.qml) (revision 204d5f7514be78430a667297ced829bd104880d5) +++ sources/gui/qml/dialogs/LockDialog.qml (.../LockDialog.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -10,11 +10,11 @@ AutoHideInfo { id: _root property bool isLocked: false - width : 600 - height : 400 - backgroundColor: "#091E31" - fontSize: 35 - verticalOffset: Variables.defaultMargin * 5 + width : 600 + height : 400 + backgroundColor : Colors.darkDialogColor + fontSize : 35 + verticalOffset : Variables.defaultMargin * 5 Rectangle { id: _mainCircle objectName: "mainCircle" Index: sources/gui/qml/globals/Colors.qml =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -60,6 +60,7 @@ readonly property color alarmDialogGreyText : "#838080" readonly property color dialogShadowColor : "#334E759C" readonly property color dialogValueColor : "#3D8EEF" + readonly property color darkDialogColor : "#091E31" readonly property color backgroundRangeRect : "#3e546e" readonly property color highlightProgressBar : "#3d8eef" Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r8672e62f205231b08dd7d4a4f6f7f3a60b2c677b -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 8672e62f205231b08dd7d4a4f6f7f3a60b2c677b) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -212,6 +212,9 @@ readonly property int defaultButtonHeight : 60 readonly property int defaultButtonWidth : 244 + readonly property int smallDialogHeight : numPadHeight + readonly property int smallDialogWidth : 1000 + // ---------- < PRS > Related Section ---------- // blood flow rate readonly property int bloodFlowMin : 100 // PRS 30 Index: sources/gui/qml/main.qml =================================================================== diff -u -rb12853c86ef9e517667516dc3e47bca07349cedf -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/main.qml (.../main.qml) (revision b12853c86ef9e517667516dc3e47bca07349cedf) +++ sources/gui/qml/main.qml (.../main.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -350,22 +350,24 @@ // } } // keyboard should always be before AlarmItem to not to covet it. - KeyboardItem { id: _keyboard } + KeyboardItem { id: _keyboard } // Dialogs - AcidConcentrateAdjustment { id: _acidConcentrateAdjustment } - HeaderbarPrescription { id: _headerbarPrescription } - HeaderbarWiFi { id: _headerbarWifi } - HeaderbarStorage { id: _headerbarStorage } - HeaderbarSettings { id: _headerbarSettings } - HeaderbarInformation { id: _headerbarInformation } + AcidConcentrateAdjustment { id: _acidConcentrateAdjustment } + HeaderbarPrescription { id: _headerbarPrescription } + HeaderbarWiFi { id: _headerbarWifi } + HeaderbarStorage { id: _headerbarStorage } + HeaderbarSettings { id: _headerbarSettings } + HeaderbarInformation { id: _headerbarInformation } TreatmentAdjustmentVitals { id: _treatmentAdjustmentVitals } - LockDialog { id: _lockDialog } - AlarmItem { id: _alarmItem ; z: 996 } - PowerItem { id: _powerItem ; z: 997 } - ConfirmDialog { id: _confirmDialog ; z: 998 } - DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } + EndTreatmentDialog { id: _endTreatmentDialog } + LockDialog { id: _lockDialog } + AlarmItem { id: _alarmItem ; z: 996 } + PowerItem { id: _powerItem ; z: 997 } + ConfirmDialog { id: _confirmDialog ; z: 998 } + DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } + // Note: NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem // then cannot be anchored. NotificationBar { id: _alarmBar Index: sources/gui/qml/pages/MainStack.qml =================================================================== diff -u -rcc7aae88f15228ff37b840946818692e444718bf -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision cc7aae88f15228ff37b840946818692e444718bf) +++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -56,6 +56,7 @@ EndTreatmentRecirculateStack { id: _endTreatmentRecirculateStack } EndTreatmentEndStack { id: _endTreatmentEndStack } + // Post Treatment PostTreatmentStack { id: _postTreatmentStack } @@ -159,7 +160,7 @@ function onTxRinsebackChanged ( vValue ) { page( _endTreatmentRinsebackStack , vValue )} function onTxRecirculateChanged ( vValue ) { page( _endTreatmentRecirculateStack , vValue )} - function onTxEndChanged ( vValue ) { page( _endTreatmentEndStack , vValue )} +// function onTxEndChanged ( vValue ) { page( _endTreatmentEndStack , vValue )} // Treatment Stop function onTxStopChanged ( vValue ) { page( _treatmentStack , vValue )} @@ -174,4 +175,12 @@ _mainHome.reasonText = vPreTreatmentAdjustmentInitTreatment.adjustment_ReasonText } } + + Connections { target: _endTreatmentDialog + // End Treatment -> proceed to rinceback + function onRejected () { + vTreatmentAdjustmentEnd.doAdjustment () +// page( _endTreatmentRinsebackStack ) + } + } } Index: sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml =================================================================== diff -u -r43ae56f762e6f3e1416d39e3d16f9103fc597e41 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml (.../EndTreatmentEndStack.qml) (revision 43ae56f762e6f3e1416d39e3d16f9103fc597e41) +++ sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml (.../EndTreatmentEndStack.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -33,7 +33,7 @@ signal rinsebackClicked() - onRinsebackClicked : vTreatmentAdjustmentEnd.doEnd () //87.0 + onRinsebackClicked : vTreatmentAdjustmentEnd.doAdjustment () //87.0 EndTreatmentBase { id : _endTreatmentEnd title.text : qsTr("Treatment Complete") Index: sources/gui/qml/pages/endtreatment/rinseback/EndTreatmentRinsebackInit.qml =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/endtreatment/rinseback/EndTreatmentRinsebackInit.qml (.../EndTreatmentRinsebackInit.qml) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/gui/qml/pages/endtreatment/rinseback/EndTreatmentRinsebackInit.qml (.../EndTreatmentRinsebackInit.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -49,21 +49,12 @@ childrenWidth : 300 anchors.fill : footer children : [ - TouchRect { id : _endTreatmentTouchRect - enabled : _root.instructionIsLast - visible : true //DEN-15722: SRSHD 1231: REmoved => vTreatmentTime .time_IsLeft - text.text : qsTr("END TREATMENT") - onClicked : treatmentEndClicked() - }, - TouchRect { id : _beginRinsebackTouchRect enabled : _root.instructionIsLast visible : true isDefault : true text.text : qsTr("START RINSEBACK") onClicked : rinsebackClicked() - }, - Item { id: placeholder } ] } Index: sources/gui/qml/pages/treatment/TreatmentHome.qml =================================================================== diff -u -r9bd436782039b50ac45eb38f561a36706517271b -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/TreatmentHome.qml (.../TreatmentHome.qml) (revision 9bd436782039b50ac45eb38f561a36706517271b) +++ sources/gui/qml/pages/treatment/TreatmentHome.qml (.../TreatmentHome.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -61,56 +61,54 @@ height: cellHeight TreatmentTime { id: _treatmentTime - objectName: "treatmentTime" - width: (cellWidth * 2) - (Variables.defaultMargin * 2) - height: cellHeight - onClicked: sectionTimeClicked() + objectName : "treatmentTime" + width : (cellWidth * 2) - (Variables.defaultMargin * 2) + height : cellHeight + onClicked : sectionTimeClicked() + editEnabled : ! isTreatmentEnd // LEAHI-PRS-376 } TreatmentSaline { id: _treatmentSaline - objectName: "treatmentSaline" - - width: cellWidth + Variables.defaultMargin - height: cellHeight + objectName : "treatmentSaline" + width : cellWidth + Variables.defaultMargin + height : cellHeight } TreatmentVitals { id: _treatmentVitals - objectName: "treatmentVitals" - - width: cellWidth + Variables.defaultMargin - height: cellHeight - onEditClicked: sectionVitalsClicked() + objectName : "treatmentVitals" + width : cellWidth + Variables.defaultMargin + height : cellHeight + onEditClicked : sectionVitalsClicked() } - TreatmentPressures { id: _treatmentPressures - objectName: "treatmentPressures" - - width: (cellWidth * 3) - (Variables.defaultMargin * 2) // without auto layouts needs to fine tune - height: cellHeight - onEditClicked: sectionPressuresClicked() + TreatmentPressures { id: _treatmentPressures + objectName : "treatmentPressures" + width : (cellWidth * 3) - (Variables.defaultMargin * 2) // without auto layouts needs to fine tune + height : cellHeight + onEditClicked : sectionPressuresClicked() } } Row { id: _bottomRow - objectName: "bottomRow" + objectName : "bottomRow" + spacing : Variables.defaultMargin + height : cellHeight - spacing: Variables.defaultMargin - height: cellHeight + TreatmentUltrafiltration { id: _treatmentUltrafiltration; + objectName : "treatmentUltrafiltration" + width : cellWidth * 3 + height : cellHeight - TreatmentUltrafiltration { id: _treatmentUltrafiltration; - objectName: "treatmentUltrafiltration" - - width: cellWidth * 3 - height: cellHeight onEditClicked : sectionUltrafiltrationClicked() } TreatmentFlows { id: _treatmentFlows - objectName: "treatmentFlows" + objectName : "treatmentFlows" + width : cellWidth * 4 + height : cellHeight + header.editEnabled : ! isTreatmentEnd // LEAHI-PRS-376 + header.lockEnabled : ! isTreatmentEnd - width: cellWidth * 4 - height: cellHeight - onEditClicked : sectionFlowClicked() onLockClicked : { _lockDialog.isLocked = editEnabled Index: sources/gui/qml/pages/treatment/TreatmentSectionHeader.qml =================================================================== diff -u -rd27d1a0cd3a0dd7ac8a7dd5cf1a66ca0e038e8dd -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/TreatmentSectionHeader.qml (.../TreatmentSectionHeader.qml) (revision d27d1a0cd3a0dd7ac8a7dd5cf1a66ca0e038e8dd) +++ sources/gui/qml/pages/treatment/TreatmentSectionHeader.qml (.../TreatmentSectionHeader.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -22,6 +22,7 @@ Rectangle { id: _root property string title : "" property bool editEnabled : true + property bool lockEnabled : true property bool showLock : false property bool showEdit : true @@ -62,11 +63,12 @@ right : _editButton.left rightMargin : Variables.defaultMargin * 2 } + enabled : lockEnabled visible : showLock - iconImageSource : editEnabled ? "qrc:/images/iUnlock" : "qrc:/images/iLock" + iconImageSource : lockEnabled ? editEnabled ? "qrc:/images/iUnlock" : "qrc:/images/iLock" : "qrc:/images/iLockDisabled" onPressed : { - editEnabled = !editEnabled + editEnabled = ! editEnabled _root.lockClicked() } } @@ -79,7 +81,7 @@ } visible : showEdit - enabled : editEnabled + enabled : editEnabled && lockEnabled iconImageSource : editEnabled ? "qrc:/images/iEdit" : "qrc:/images/iEditDisabled" onPressed : _root.editClicked() } Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r975e1964b60365b24c74be139c6b84369a7248ce -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 975e1964b60365b24c74be139c6b84369a7248ce) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -47,11 +47,10 @@ stackView.initialItem : null readonly property bool isTreatmentPaused : vTDTreatmentStates.txStop - readonly property bool isSBInProgress : ( vTDTreatmentStates.sbRunning || vTDTreatmentStates.sbWaitPump ) + readonly property bool isTreatmentEnd : vTDTreatmentStates.txEnd + property int headerMenuIndex : _headerBar.headerMenuIndex - property int headerMenuIndex: _headerBar.headerMenuIndex - onHeaderMenuIndexChanged: { if ( _root.headerMenuIndex === 2) page(_treatmentHeparin) if ( _root.headerMenuIndex === 1) page(_treatmentTrends) @@ -159,11 +158,12 @@ Connections { target: vTDTreatmentStates // in-Treatmet - function onTxBloodPrimeChanged ( vValue ) { page( _treatmentBloodPrime , vValue )} - function onTxDialysisChanged ( vValue ) { page( _treatmentHome , vValue )} + function onTxBloodPrimeChanged ( vValue ) { page( _treatmentBloodPrime , vValue )} + function onTxDialysisChanged ( vValue ) { page( _treatmentHome , vValue )} + function onTxEndChanged ( vValue ) { if ( vValue ) { _endTreatmentDialog.open() }} } Connections { target: _mainHome - function onStartTreatment ( vValue ) { page( _treatmentHome )} + function onStartTreatment ( vValue ) { page( _treatmentHome )} } } Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml =================================================================== diff -u -r71bb1dea18ee4340d90d894a7ab8e147b5977bb4 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision 71bb1dea18ee4340d90d894a7ab8e147b5977bb4) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -128,6 +128,7 @@ } isDefault : true onClicked : isUFPaused ? _root.resumeClicked() : _root.pauseClicked() + enabled : ! isTreatmentEnd // LEAHI-PRS-376 } TouchRect { id: _editButton @@ -140,6 +141,7 @@ } isDefault : true onClicked : _root.editClicked() + enabled : ! isTreatmentEnd // LEAHI-PRS-376 } TouchRect { id: _isolatedUfButton Index: sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml =================================================================== diff -u -r493c6653bc98492d200bfd82abd6abf9af8d29ca -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml (.../TreatmentFlows.qml) (revision 493c6653bc98492d200bfd82abd6abf9af8d29ca) +++ sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml (.../TreatmentFlows.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -48,7 +48,7 @@ width : _row.cellWidth value : Variables.notSetVariable(vTreatmentParametersSetPoint.bloodFlow.toFixed(Variables.bloodFlowPrecision)) unitText : Variables.unitTextFlowRate - buttonsEnabled : editEnabled + buttonsEnabled : isTreatmentEnd ? true : editEnabled // LEAHI-PRS-376 onIncrement : print(" increment blood flow") onDecrement : print(" decrement blood flow") @@ -61,7 +61,7 @@ width : _row.cellWidth value : vTreatmentParametersSetPoint.dialysateFlow.toFixed(Variables.dialysateFlowPrecision) // Need to show 0 value unitText : Variables.unitTextFlowRate - buttonsEnabled : editEnabled + buttonsEnabled : editEnabled && ! isTreatmentEnd // LEAHI-PRS-376 extraText : vTreatmentParametersSetPoint.dialysateFlow === 0 ? qsTr("OFF") : ! vDDGenDialysate.isDialGood ? qsTr("Bypass") : "" @@ -77,7 +77,7 @@ width : _row.cellWidth value : Variables.notSetVariable(vTreatmentParametersSetPoint.dialysateTemp.toFixed(Variables.dialysateTempPrecision)) unitText : Variables.unitTextTemperature - buttonsEnabled : editEnabled + buttonsEnabled : editEnabled && ! isTreatmentEnd // LEAHI-PRS-376 onIncrement : print(" increment dial temp") onDecrement : print(" decrement dial temp") Index: sources/gui/qml/pages/treatment/sections/TreatmentTime.qml =================================================================== diff -u -rd27d1a0cd3a0dd7ac8a7dd5cf1a66ca0e038e8dd -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/gui/qml/pages/treatment/sections/TreatmentTime.qml (.../TreatmentTime.qml) (revision d27d1a0cd3a0dd7ac8a7dd5cf1a66ca0e038e8dd) +++ sources/gui/qml/pages/treatment/sections/TreatmentTime.qml (.../TreatmentTime.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -35,11 +35,12 @@ property bool isRunning : vTDTreatmentStates.txDialysis && !( vTDTreatmentStates.sbWaitPump || vTDTreatmentStates.sbRunning ) - property bool isComplete : vTreatmentTime.time_Remaining <= 0 && vTreatmentTime.time_Elapsed > 0 + property bool isComplete : ( vTreatmentTime.time_Remaining <= 0 && vTreatmentTime.time_Elapsed > 0 ) || vTDTreatmentStates.txEnd - property string notificationText: ! isRunning ? qsTr("Treatment Paused") : - isComplete ? qsTr("Treatment Complete"): + property string notificationText: isComplete ? qsTr("Treatment Complete"): + ! isRunning ? qsTr("Treatment Paused") : "" + property alias editEnabled: _editTimeIcon.enabled color : "transparent" width : _circle.width @@ -61,7 +62,7 @@ MouseArea { id: _mouseArea anchors.fill : parent - onClicked : _root.clicked() + onClicked : if ( editEnabled ) { _root.clicked() } } } @@ -110,7 +111,7 @@ horizontalCenter: parent.horizontalCenter } iconSize : 30 - iconImageSource : "qrc:/images/iEdit" + iconImageSource : enabled ? "qrc:/images/iEdit" : "qrc:/images/iEditDisabled" onClicked : _root.clicked() } } Fisheye: Tag ca05e940ea4a0c567acb05c4c8777dea079b0f08 refers to a dead (removed) revision in file `sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.cpp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ca05e940ea4a0c567acb05c4c8777dea079b0f08 refers to a dead (removed) revision in file `sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.h'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -398,18 +398,13 @@ * * | Payload || * | || - * | #1:(U32) | \ref requestedState | + * | (N/A) || * - * \sa State - * \sa MTreatmentEnd : Treatment End Data - * \sa MAdjustTreatmentEndResponse : Treatment End Response - * */ class MAdjustTreatmentEndReq : public MModel { public: - GuiTreatmentEndCommands requestedState = GuiTreatmentEndCommands::REQUESTED_USER_ACTION_TX_END_RINSEBACK_START; // the requested state. QString toString() { - return toString({requestedState}); + return toString({}); } static QString toString(const QVariantList &vParameters) { return MModel::toString("AdjustTxEnd", vParameters); Index: sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.cpp =================================================================== diff -u --- sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.cpp (revision 0) +++ sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.cpp (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -0,0 +1,49 @@ +/*! + * + * Copyright (c) 2021-2024 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 MTreatmentAdjustEndResponse.cpp + * \author (last) Behrouz NematiPour + * \date (last) 11-Apr-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#include "MTreatmentAdjustEndResponse.h" + +using namespace Model; + +QVariantList MAdjustTreatmentEndResponse::parameters() const { + return { + _data.mAccepted.value, + _data.mReason .value, + }; +} + +bool MAdjustTreatmentEndResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mReason )) goto lError; + + return true ; + +lError: + if(vIndex) { *vIndex = index; } + + return false ; +} + +/*! + * \brief MAdjustTreatmentEndResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustTreatmentEndResponseData MAdjustTreatmentEndResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted.value; + data.mReason = _data.mReason .value; + return data; +} Index: sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.h =================================================================== diff -u --- sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.h (revision 0) +++ sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.h (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -0,0 +1,84 @@ +/*! + * + * Copyright (c) 2021-2024 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 MTreatmentAdjustEndResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 11-Apr-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustTreatmentEndResponse class + * \details The TreatmentEnd adjustment response model + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:----------------: | + * |0x5800| 0x020 | 6 | Rsp | Y | HD | UI | Treatment End Response | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAccepted | + * | #2:(U32) | \ref Data::mReason | + * + * \sa Data + * \sa MAdjustTreatmentEndReq : Treatment End Request + * \sa MTreatmentTreatmentEnd : Treatment End Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustTxEnd | + * + */ +class MAdjustTreatmentEndResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted; + Types::U32 mReason ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eTD ; } + QString infoText () const override { return QString("AdjustTxEnd") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + }; + + MAdjustTreatmentEndResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustTreatmentEndResponse::Data AdjustTreatmentEndResponseData; Index: sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.cpp =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.cpp (.../VTreatmentAdjustmentEnd.cpp) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.cpp (.../VTreatmentAdjustmentEnd.cpp) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -34,13 +34,13 @@ adjustment ( true ); } -/*! - * \brief View::VTreatmentAdjustmentEnd::adjustment - * \details the invocable slot to adjust the Treatment End state - * \param vRequestedState - the requested state - */ -void View::VTreatmentAdjustmentEnd::adjustment(const GuiTreatmentEndCommands &vRequestedState) -{ - _data.requestedState = vRequestedState; - emit didAdjustment(_data); // notify the controllers to do the adjustment -} +///*! +// * \brief View::VTreatmentAdjustmentEnd::adjustment +// * \details the invocable slot to adjust the Treatment End state +// * \param vRequestedState - the requested state +// */ +//void View::VTreatmentAdjustmentEnd::adjustment(const GuiTreatmentEndCommands &vRequestedState) +//{ +// _data.requestedState = vRequestedState; +// emit didAdjustment(_data); // notify the controllers to do the adjustment +//} Index: sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.h =================================================================== diff -u -ra58f91b077c8131bea3dbde0fc338adb113fc9f3 -rca05e940ea4a0c567acb05c4c8777dea079b0f08 --- sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.h (.../VTreatmentAdjustmentEnd.h) (revision a58f91b077c8131bea3dbde0fc338adb113fc9f3) +++ sources/view/hd/adjustment/treatment/VTreatmentAdjustmentEnd.h (.../VTreatmentAdjustmentEnd.h) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) @@ -37,19 +37,17 @@ // friends friend class ::tst_views; - AdjustTreatmentEndRequestData _data; - // The property adjustment_Triggered has to be always true // and to always trigger the change event to work as a notifier for GUI TRIGGER( bool , adjustment , 0 ) VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentEnd, AdjustTreatmentEndResponseData) -private: - void adjustment (const GuiTreatmentEndCommands &vRequestedState); - public slots: - void doEnd () { adjustment( GuiTreatmentEndCommands::REQUESTED_USER_ACTION_TX_END_RINSEBACK_START ); } + void doAdjustment() { + AdjustTreatmentEndRequestData data; + emit didAdjustment(data); + } signals: /*!