Index: leahi.qrc =================================================================== diff -u -r86aaf030d6eb405f301f703aa68e6854db7eb5d1 -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- leahi.qrc (.../leahi.qrc) (revision 86aaf030d6eb405f301f703aa68e6854db7eb5d1) +++ leahi.qrc (.../leahi.qrc) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -165,6 +165,8 @@ sources/gui/qml/compounds/CheckListView.qml sources/gui/qml/compounds/TouchGrid.qml sources/gui/qml/compounds/BPHREntry.qml + sources/gui/qml/compounds/LabelUnitContainer.qml + sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml qtquickcontrols2.conf @@ -259,7 +261,6 @@ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentFlow.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml - sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationMetrics.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml Index: sources/gui/qml/components/RangeMarker.qml =================================================================== diff -u -r3e91f569d10fe5b76298b85ee3a6875f80e33063 -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision 3e91f569d10fe5b76298b85ee3a6875f80e33063) +++ sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -81,6 +81,23 @@ rightMargin : valueOnTop ? -12 : 5 topMargin : valueOnTop ? 0 : -5 horizontalCenter: valueOnTop ? _handle.horizontalCenter : undefined + horizontalCenterOffset: { + if (valueOnTop) { + if (_root.parent !== undefined) { + let xDelta = (_root.width-implicitWidth)/2 + // left boundary + if (_root.x + xDelta < 0) { + return -(_root.x + xDelta) + } + // right boundary + let rightOverflow = _root.x + _root.width - xDelta + if (rightOverflow > _root.parent.width) { + return -(rightOverflow - _root.parent.width) + } + } + } + return 0 + } } horizontalAlignment: valueOnTop ? Text.AlignHCenter : Text.AlignLeft color : _root.color Index: sources/gui/qml/compounds/LabelUnitContainer.qml =================================================================== diff -u --- sources/gui/qml/compounds/LabelUnitContainer.qml (revision 0) +++ sources/gui/qml/compounds/LabelUnitContainer.qml (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -0,0 +1,90 @@ +/*! + * + * Copyright (c) 2021-2025 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file LabelUnitContainer.qml + * \author (last) Nico Ramirez + * \date (last) 21-Aug-2025 + * \author (original) Nico Ramirez + * \date (original) 21-Aug-2025 + * + */ + +// Qt +import QtQuick 2.12 + +// Qml +import "qrc:/globals" +import "qrc:/components" + +Rectangle { id: _root + property Item contentItem : null + property alias contentArea : _contentArea + + property alias text : _title.text + property string unitText: "" + property bool valid : true + property bool showUnit : true + property bool showEdit : false + property alias titleText: _title + + height : cellHeight + width : cellWidth + radius : 8.5 + color : Colors.panelBackgroundColor + + border { + width: 1 + color: valid ? Colors.panelBorderColor : Colors.panelInvalidBorderColor + } + + signal editClicked() + + Row { id: _titleRow + anchors { + verticalCenter : parent.verticalCenter + left : parent.left + leftMargin : Variables.defaultMargin + } + spacing : 10 + + Text { id: _title + anchors.verticalCenter : _titleRow.verticalCenter + color : Colors.offWhite + font.pixelSize : 28 + } + + Text { id: _unit + anchors.bottom : _title.bottom + text : _root.unitText.length > 0 ? ("(%1)").arg(_root.unitText) : "" + color : Colors.offWhite + font.pixelSize : 22 + font.weight : Font.Thin + visible : _root.showUnit + } + + IconButton { id : _editButton + anchors.verticalCenter : _title.verticalCenter + anchors.verticalCenterOffset : 5 + visible : _root.showEdit + iconImageSource : "qrc:/images/iEdit" + onPressed : _root.editClicked() + iconSize : Variables.iconsDiameter + } + } + + ContentArea { id : _contentArea + anchors { + top : _root.top + left : _root.left + leftMargin : _root.width / 2 + right : _root.right + bottom : _root.bottom + } + + contentItem: _root.contentItem + } +} Index: sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml =================================================================== diff -u --- sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml (revision 0) +++ sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -0,0 +1,72 @@ +/*! + * + * 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 TreatmentAdjustmentUltrafiltrationMetrics.qml + * \author (last) Stephen Quong + * \date (last) 19-Aug-2025 + * \author (original) Stephen Quong + * \date (original) 19-Aug-2025 + * + */ + +// Qt +import QtQuick 2.12 + +// Project + +// Qml imports +import "qrc:/globals" + +/*! + * \brief TreatmentAdjustmentUltrafiltrationMetrics contains components + * that display the ultrafiltration volume removed and goal. + */ +Item { id: _root + property real setVolume : 0 + property real volumeRemoved : 0 + + component ValueContainer: LabelUnitContainer { id: _valueContainer + property alias value: _value.text + + anchors.centerIn : parent + width : 350 + height : 60 + titleText.font { + pixelSize : Fonts.fontPixelButton + weight : Font.Medium + } + + contentItem: Item { id: _containerContentItem + Text { id: _value + anchors { + right : parent.right + rightMargin : Variables.defaultMargin + verticalCenter : parent.verticalCenter + } + font { + pixelSize : Fonts.fontPixelUltrafiltrationAdjustmentMetrics + weight : Font.DemiBold + } + color : titleText.color + } + } + } + + ValueContainer { id: _volumeRemovedContainer + anchors.horizontalCenterOffset : -(width/2 + 30) + titleText.color : Colors.fluidText + text : qsTr("UF Volume Removed:") + value : _root.volumeRemoved.toFixed(Variables.ultrafiltrationPrecision) + } + + ValueContainer { id: _volumeGoalContainer + anchors.horizontalCenterOffset : -(_volumeRemovedContainer.anchors.horizontalCenterOffset) + titleText.color : Colors.ufVolumeGoalText + text : qsTr("UF Volume Goal:") + value : _root.setVolume.toFixed(Variables.ultrafiltrationPrecision) + } +} Index: sources/gui/qml/globals/Colors.qml =================================================================== diff -u -r47f9c63c505b15ee0ce34e0f4771a3e138d441b2 -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 47f9c63c505b15ee0ce34e0f4771a3e138d441b2) +++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -30,6 +30,7 @@ readonly property color red : "#c53b33" // red readonly property color white : "white" // white readonly property color transparent : "Transparent" // No Color + readonly property color offWhite : "#FEFEFE" readonly property color separatorLine : "#5f809d" readonly property color backgroundMain : "#1A344D" //// ----- @LEAHIZED @@ -54,13 +55,19 @@ readonly property color backgroundUltrafiltrationButton : "#31568F" readonly property color textValueUltrafiltrationButtonFg: "#98aec2" + readonly property color dialogText : "#343434" + readonly property color alarmDialogText : "#343434" + readonly property color alarmDialogGreyText : "#838080" + readonly property color dialogShadowColor : "#334E759C" + readonly property color dialogValueColor : "#3D8EEF" readonly property color backgroundRangeRect : "#3e546e" readonly property color highlightProgressBar : "#3d8eef" readonly property color highlightMedProgressBar : "#1b2b3e" readonly property color textProgressBar : "#88a3c5" readonly property color progressBarSaline : "#73D8DF" readonly property color progressBarUltrafiltration : "#67ACFF" + readonly property color comboBoxDisplay : "#B31B2B3E" readonly property color textRangeMarker : white readonly property color rangeMarker : white @@ -82,6 +89,10 @@ readonly property color buttonDisableColor : "#515050" readonly property color pauseColor : "#9B864E" + readonly property color panelBackgroundColor : "#12FFFFFF" + readonly property color panelBorderColor : "#4DB5B5B5" + readonly property color panelInvalidBorderColor : "#FFA500" + readonly property color touchTextAreaTitle : "#a0b6d0" readonly property color textTextRectTitle : white @@ -113,7 +124,7 @@ readonly property color textNotificationHighBg : red readonly property color textNotificationHighFg : white - readonly property color alarmTopBarHighBg : "#831913" + readonly property color alarmTopBarHighBg : red readonly property color alarmTopBarHighFg : white readonly property color alarmTopBarMedBg : "#db8f00" @@ -137,11 +148,9 @@ readonly property color scrollBarBgColor : white //"#80696969" // half transparent dimgray - readonly property color textBoxBgColor : "#344e6b" - readonly property color textBoxBorderColor : "#475d76" readonly property color ufVolumeGoalText : "#f5be59" readonly property color ufNotificationBarBg : "#0f2841" - readonly property color ufProgressBarFill : "#467bbe" + readonly property color ufProgressBarFill : "#2083FA" readonly property color ufProgressBarBorder : "#416897" readonly property color ufAdjustmentDeltaFill : "#747974" readonly property color ufAdjustmentProgressBarBg : "#2c517b" @@ -158,25 +167,25 @@ case GuiActions.ALARM_PRIORITY_HIGH: titleBg = alarmTopBarHighBg titleFg = alarmTopBarHighFg - contentBg = textNotificationHighBg + contentBg = white contentFg = textNotificationHighFg break case GuiActions.ALARM_PRIORITY_MEDIUM: titleBg = alarmTopBarMedBg titleFg = alarmTopBarMedFg - contentBg = textNotificationMedBg + contentBg = white contentFg = textNotificationMedFg break case GuiActions.ALARM_PRIORITY_LOW: titleBg = alarmTopBarLowBg titleFg = alarmTopBarLowFg - contentBg = textNotificationLowBg + contentBg = white contentFg = textNotificationLowFg break default : // GuiActions.ALARM_PRIORITY_NONE titleBg = backgroundButtonSelect titleFg = textMain - contentBg = backgroundDialog + contentBg = white contentFg = textMain } return [titleBg , Index: sources/gui/qml/globals/Fonts.qml =================================================================== diff -u -r018005dc067da01f25899ce83e4ce8f14e5013ae -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 018005dc067da01f25899ce83e4ce8f14e5013ae) +++ sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -31,6 +31,7 @@ readonly property int fontPixelAlarmTitle : 48 readonly property int fontPixelAlarmBarTitle : 40 readonly property int fontPixelAlarmMessage : 40 + readonly property int fontPixelAlarmID : 32 readonly property int fontPixelTouchAreaTitle : 16 @@ -48,6 +49,7 @@ readonly property int fontPixelPresseuresText : 22 readonly property int fontPixelPresseuresLabel : 28 + readonly property int fontPixelValueControl : 35 readonly property int fontPixelFluidText : 22 readonly property int fontPixelFluidValue : 32 Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r018005dc067da01f25899ce83e4ce8f14e5013ae -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 018005dc067da01f25899ce83e4ce8f14e5013ae) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -41,6 +41,7 @@ readonly property int contentHeight : 50 readonly property int mainMenuHeight : 80 //// ----- @LEAHIZED + readonly property int alarmDialogHeaderHeight : 100 readonly property int minVGap : 15 readonly property int minVGap2 : 30 @@ -73,6 +74,7 @@ readonly property int dialogWidth : applicationWidth - dialogMargin readonly property int dialogHeight : applicationHeight - dialogMargin readonly property int dialogRadius : 10 + readonly property int alarmDialogRadius : 30 readonly property int rangeRectMargin : 1 readonly property int rangeRectRadius : 2 @@ -111,12 +113,13 @@ readonly property int pauseIconDiameter : 60 readonly property int arrowIconDiameter : 35 + readonly property int muteIconDiameter : 38 readonly property int headerIconDiameter : 40 readonly property int topBarMenuHeight : 80 //// ----- @LEAHIZED readonly property int sliderCircleDiameter : 30 readonly property int pressuresProgressbarWidth : 725 - + readonly property int gridSelectionButtonHeight : 100 readonly property int gridSelectionButtonWidth : 375 @@ -209,7 +212,6 @@ readonly property int noRejectReason : 0 readonly property int textBoxRadius : 5 - readonly property int textBoxBorderWidth : 2 readonly property int adjustmentDialogWidth : applicationWidth * 0.7 readonly property int adjustmentDialogHeight : applicationHeight * 0.7 readonly property int adjustmentHeaderHeight : 120 @@ -246,6 +248,12 @@ // Dialysate Conductivity readonly property int dialysateCondPrecision : 1 + // Potassium + readonly property int potassiumPrecision : 1 + + // Calcium + readonly property int calciumPrecision : 2 + function sizeConverted(vSize, vSizePowers, vRound = 2) { return ( vSize / vSizePowers // convert from byte to Giga byte @@ -270,12 +278,16 @@ readonly property var regExp_PatientID: /[A-Za-z0-9_\-\.]{1,64}/ + readonly property string emptyEntry : "-- --" + readonly property string preTreatmentStepLabelCreate : qsTr("CREATE" ) readonly property string preTreatmentStepLabelConfirm : qsTr("CONFIRM" ) readonly property string preTreatmentStepLabelPriming : qsTr("PRIME" ) readonly property string preTreatmentStepLabelUltrafiltration : qsTr("BEGIN" ) // Units + readonly property string unitTextPotassium : qsTr("K") + readonly property string unitTextCalcium : qsTr("Ca") // - Ultrafiltration readonly property string unitTextUltrafiltrationRate : unitTextFlowRate readonly property string unitTextUltrafiltrationVolume : unitTextVolume Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml =================================================================== diff -u -raa03f07a386a12895435facfff9f4bff9f7a45f0 -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision aa03f07a386a12895435facfff9f4bff9f7a45f0) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -21,6 +21,7 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" /*! * \brief TreatmentAdjustmentUltrafiltrationEdit.qml is the screen Fisheye: Tag 0022c3993c47e74c2d17c7f07f78fa1751a034f6 refers to a dead (removed) revision in file `sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationMetrics.qml'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml =================================================================== diff -u -raa03f07a386a12895435facfff9f4bff9f7a45f0 -r0022c3993c47e74c2d17c7f07f78fa1751a034f6 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision aa03f07a386a12895435facfff9f4bff9f7a45f0) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision 0022c3993c47e74c2d17c7f07f78fa1751a034f6) @@ -21,6 +21,7 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" /*! * \brief TreatmentAdjustmentUltrafiltrationStart.qml is the screen