Index: leahi.qrc =================================================================== diff -u -r477c26a4e1dcbdf7ad0f29ae7a1df4738d4dcce2 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- leahi.qrc (.../leahi.qrc) (revision 477c26a4e1dcbdf7ad0f29ae7a1df4738d4dcce2) +++ leahi.qrc (.../leahi.qrc) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -275,6 +275,7 @@ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml sources/gui/qml/pages/endtreatment/EndTreatmentRinsebackStack.qml Index: sources/gui/qml/components/ModalDialog.qml =================================================================== diff -u -rd3c42a4b5e5858503ac3102b9b1bfeab81235762 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/components/ModalDialog.qml (.../ModalDialog.qml) (revision d3c42a4b5e5858503ac3102b9b1bfeab81235762) +++ sources/gui/qml/components/ModalDialog.qml (.../ModalDialog.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -80,7 +80,6 @@ NumPad { id: _numPad x : _root.width - _numPad.width y : 0 - z : -1 onCancel : _numPad.hide() } } Index: sources/gui/qml/compounds/BPHREntry.qml =================================================================== diff -u -r596aa427447d3757005ae759c64c52ebb26b9503 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/compounds/BPHREntry.qml (.../BPHREntry.qml) (revision 596aa427447d3757005ae759c64c52ebb26b9503) +++ sources/gui/qml/compounds/BPHREntry.qml (.../BPHREntry.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -31,17 +31,12 @@ property alias diastolic : _bloodPressureDiastolic.text property alias heartRate : _heartRate.text - - readonly property int controlWidth : width - ( contentPadding * 2 ) - readonly property int controlHeight : 75 - readonly property int contentPadding : Variables.defaultMargin * 7 - - readonly property bool isValid : + readonly property int contentPadding : Variables.defaultMargin * 7 + readonly property bool isValid : _bloodPressureSystolic .isValid && _bloodPressureDiastolic .isValid && _heartRate .isValid && _private.isBloodPressureCompareValid - && _bpMeasurementIntervalControl.isActive width : _container.width height : _container.height @@ -58,8 +53,8 @@ LabelUnitContainer { id: _bpContainer text : qsTr("Blood Pressure") unitText : Variables.unitTextBloodPressure - width : _root.controlWidth - height : _root.controlHeight + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight contentItem : Row { spacing : 10 @@ -109,8 +104,8 @@ LabelUnitContainer { id: _heartRateContainer text : qsTr("Heart Rate") unitText : Variables.unitTextHeartBeat - width : _root.controlWidth - height : _root.controlHeight + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight contentItem : TextEntry { id: _heartRate text : Variables.notSetVariable(vTreatmentVitals.heartRate, 0) @@ -129,30 +124,5 @@ Variables.unitTextHeartBeat) } } - - LabelUnitContainer { id: _bpMeasurementInterval - text : qsTr("BP Measurement Interval") - unitText : Variables.unitTextDuration - valid : ! vTreatmentCreate.bloodPressureMeasureIntervalRejectReason - width : _root.controlWidth - height : _root.controlHeight - - contentItem : ValueAdjuster { id: _bpMeasurementIntervalControl - minimum : vTreatmentRanges.bloodPressureMeasureIntervalMin - maximum : vTreatmentRanges.bloodPressureMeasureIntervalMax - step : vTreatmentRanges.bloodPressureMeasureIntervalRes - defaultValue : vTreatmentRanges.bloodPressureMeasureIntervalDef - value : vTreatmentCreate.bloodPressureMeasureInterval - canOff : true - isActive : vTreatmentCreate.bloodPressureMeasureIntervalSet - - onDidActiveChange : function(vState) { vTreatmentCreate.bloodPressureMeasureIntervalSet = vState } - onDidChange : function(vValue) { - if ( ! _bpMeasurementInterval.valid ) { vTreatmentCreate.bloodPressureMeasureIntervalRejectReason = Variables.noRejectReason } - vTreatmentCreate.bloodPressureMeasureInterval = vValue - if ( numPad ) numPad.hide (true) - } - } - } } } Index: sources/gui/qml/compounds/NumPad.qml =================================================================== diff -u -r596aa427447d3757005ae759c64c52ebb26b9503 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/compounds/NumPad.qml (.../NumPad.qml) (revision 596aa427447d3757005ae759c64c52ebb26b9503) +++ sources/gui/qml/compounds/NumPad.qml (.../NumPad.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -43,7 +43,7 @@ color : Colors.backgroundMain x : Math.round((Variables.applicationWidth - _root.width) / 2) y : Math.round((Variables.applicationHeight - _root.height) / 2) - + z : isOpened ? 0 : -1 onVisibleChanged : if ( ! _root.visible ) { reset() } onDisplayValueChanged : if ( _root.setter ) { _root.setter( _valueLabel.text ) } onSettingValueChanged : _valueLabel.text = _root.settingValue !== undefined ? _root.settingValue : "" @@ -95,8 +95,11 @@ TouchRect { id : _sliderButton anchors { verticalCenter : parent.verticalCenter - left : parent.right - leftMargin : height / 2 * -1 + horizontalCenter: _root.isOpened ? parent.left : parent.right + horizontalCenterOffset : _root.isOpened ? 10 * -1 : 0 + +// leftMargin : height / 2 * -1 +// right : _root.isOpened } z : -1 height : 80 @@ -108,12 +111,12 @@ Image { id : _iconImage anchors { - verticalCenter : parent.verticalCenter - right : parent.right - rightMargin : 10 + verticalCenter : parent.verticalCenter + horizontalCenter : parent.horizontalCenter + horizontalCenterOffset : _root.isOpened ? 15 * -1 : 15 } - height : 30 - width : 30 + height : 35 + width : 35 fillMode: Image.PreserveAspectFit source : isOpened ? "qrc:/images/iChevronLeft" : "qrc:/images/iChevronRight" Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r596aa427447d3757005ae759c64c52ebb26b9503 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 596aa427447d3757005ae759c64c52ebb26b9503) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -199,6 +199,9 @@ readonly property int sliderAdjustButtonRightMargin : 50 readonly property int sliderAdjustPressAndHoldRefreshRate : 250 + readonly property int adjustmentLabelUnitContainerHeight : 75 + readonly property int adjustmentLabelUnitContainerWidth : 720 + readonly property real sliderDefaultRoundTickMarkDiameter : 5 readonly property int sliderDefaultBodyHeight : 15 Index: sources/gui/qml/main.qml =================================================================== diff -u -r736a7be958ca343f17b50e9e0d85cd395e8037e7 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/main.qml (.../main.qml) (revision 736a7be958ca343f17b50e9e0d85cd395e8037e7) +++ sources/gui/qml/main.qml (.../main.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -335,15 +335,11 @@ // keyboard should always be before AlarmItem to not to covet it. KeyboardItem { id: _keyboard } - // Headerbar popups HeaderbarWiFi { id: _headerbarWifi } HeaderbarStorage { id: _headerbarStorage } HeaderbarSettings { id: _headerbarSettings } HeaderbarInformation { id: _headerbarInformation } - - // Adjustment Popups TreatmentAdjustmentVitals { id: _treatmentAdjustmentVitals } - LockDialog { id: _lockDialog } AlarmItem { id: _alarmItem ; z: 996 } PowerItem { id: _powerItem ; z: 997 } Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r31b1e7a5d69f014398827e16286f28515cd60e35 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 31b1e7a5d69f014398827e16286f28515cd60e35) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -80,7 +80,7 @@ _treatmentAdjustmentFlow.open() } function onSectionVitalsClicked ( vValue ) { - _treatmentAdjustmentVitals.open() + _treatmentAdjustmentVitalsInterval.open() } function onSectionPressuresClicked ( vValue ) { _treatmentAdjustmentPressuresLimits.open() @@ -123,6 +123,8 @@ } } + TreatmentAdjustmentVitalsInterval { id: _treatmentAdjustmentVitalsInterval } + // ---------- Manages Responses ---------- Connections { target: vTreatmentAdjustmentDuration function onAdjustmentTriggered ( vValue ) { Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml =================================================================== diff -u -r4265da9e1ca8fef9db38163e4aa91a1a11eb0469 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml (.../TreatmentAdjustmentVitals.qml) (revision 4265da9e1ca8fef9db38163e4aa91a1a11eb0469) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml (.../TreatmentAdjustmentVitals.qml) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -23,7 +23,7 @@ TreatmentAdjustmentBase { id: _root contentItem.objectName: "TreatmentAdjustmentVitals" - titleText : qsTr("VITALS") + titleText : qsTr("Vitals") titlePixelSize : Fonts.fontPixelSection height : Variables.numPadHeight width : 1000 @@ -64,7 +64,7 @@ vTreatmentVitals.doTimerStop() } - onClosed: vTreatmentVitals.doTimerStart() + onClosed: if ( vTreatmentVitals.enableDialog ) { vTreatmentVitals.doTimerStart() } onCloseClicked: { numPad.hide() @@ -104,7 +104,7 @@ } } - TouchRect { id : _requestButton + TouchRect { id : _measureVitalsButton width : _root.buttonWidth height : _root.buttonHeight isDefault : true @@ -134,7 +134,7 @@ // confirm only if triggered from interval timer and popup is not open if ( ! _root.visible) { _root.confirm() - vTreatmentVitals.doTimerStart() + if ( vTreatmentVitals.enableDialog ) { vTreatmentVitals.doTimerStart() } } } else { // on rejected prompt user to enter vitals manually Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml =================================================================== diff -u --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml (revision 0) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -0,0 +1,92 @@ +/*! + * + * Copyright (c) 2020-2025 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file TreatmentAdjustmentVitalsInterval.qml + * \author (last) Nico Ramirez + * \date (last) 03-Oct-2025 + * \author (original) Nico Ramirez + * \date (original) 03-Oct-2025 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" + +TreatmentAdjustmentBase { id: _root + contentItem.objectName: "TreatmentAdjustmentVitalsInterval" + titleText : qsTr("Vitals Interval") + + titlePixelSize : Fonts.fontPixelSection + height : 500 + width : 1000 + + readonly property int buttonHeight : 65 // TODO:: SYNC BUTTON DIMENSIONS + readonly property int buttonWidth : 200 + + function confirm() { + vTreatmentCreate.bloodPressureMeasureInterval = _bpMeasurementIntervalControl.value + _root.close() + } + + onOpened: { _bpMeasurementIntervalControl.value = vTreatmentCreate.bloodPressureMeasureInterval } + + LabelUnitContainer { id: _bpMeasurementInterval + anchors { + top : _root.contentItem.top + topMargin : Variables.defaultMargin * 2 + horizontalCenter: _root.contentItem.horizontalCenter + } + + text : qsTr("BP Measurement Interval") + unitText : Variables.unitTextDuration + valid : ! vTreatmentCreate.bloodPressureMeasureIntervalRejectReason + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + + contentItem : ValueAdjuster { id: _bpMeasurementIntervalControl + minimum : vTreatmentRanges.bloodPressureMeasureIntervalMin + maximum : vTreatmentRanges.bloodPressureMeasureIntervalMax + step : vTreatmentRanges.bloodPressureMeasureIntervalRes + defaultValue : vTreatmentRanges.bloodPressureMeasureIntervalDef + value : vTreatmentCreate.bloodPressureMeasureInterval + canOff : true + isActive : vTreatmentCreate.bloodPressureMeasureIntervalSet + + onDidActiveChange : function(vState) { vTreatmentCreate.bloodPressureMeasureIntervalSet = vState } + onDidChange : function(vValue) { + if ( ! _bpMeasurementInterval.valid ) { vTreatmentCreate.bloodPressureMeasureIntervalRejectReason = Variables.noRejectReason } + value = vValue + } + } + } + + ConfirmButton { id : _confirmButton + anchors { + bottom : _root.contentItem.bottom + bottomMargin : notification.visible ? Variables.defaultMargin * 4.5 : Variables.defaultMargin * 3 + horizontalCenter: _root.contentItem.horizontalCenter + } + + width : _root.buttonWidth + height : _root.buttonHeight + enabled : _bpMeasurementIntervalControl.isActive + + anchors { + top : undefined + right : undefined + margins : 0 + } + onClicked : { + _root.confirm() + } + } +} Index: sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp =================================================================== diff -u -r9c699f88ab6b214e25ad2d48993a6c28117b02b5 -r41a604f3fe3a5bb40bddd8c06e5fe88df85e3997 --- sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision 9c699f88ab6b214e25ad2d48993a6c28117b02b5) +++ sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision 41a604f3fe3a5bb40bddd8c06e5fe88df85e3997) @@ -75,8 +75,10 @@ */ void View::VTreatmentVitals::doSkip() { - LOG_APPED_UI(tr("Vital Skipped")); - timerReset(); + if ( enableDialog() ) { + LOG_APPED_UI(tr("Vital Skipped")); + timerReset(); + } } /*!