Index: leahi.qrc
===================================================================
diff -u -rbea36be2766046e63c4e82539a630b5cee7ce1c6 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- leahi.qrc (.../leahi.qrc) (revision bea36be2766046e63c4e82539a630b5cee7ce1c6)
+++ leahi.qrc (.../leahi.qrc) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -110,6 +110,8 @@
resources/images/complete_check.png
resources/images/Brightness.png
resources/images/Volume.png
+ resources/images/water_sample_fail.png
+ resources/images/water_sample_pass.png
sources/gui/qml/components/MainMenu.qml
@@ -175,6 +177,7 @@
sources/gui/qml/components/IdleTimer.qml
sources/gui/qml/components/TreatmentCompleteButton.qml
sources/gui/qml/components/RangedValue.qml
+ sources/gui/qml/components/SubStepIndicator.qml
sources/gui/qml/components/SDCInfo.qml
@@ -249,18 +252,16 @@
sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml
sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml
- sources/gui/qml/pages/pretreatment/PreTreatmentWaterSampleStack.qml
- sources/gui/qml/pages/pretreatment/PreTreatmentConsumablesStack.qml
- sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml
+ sources/gui/qml/pages/pretreatment/PreTreatmentWaterSample.qml
+ sources/gui/qml/pages/pretreatment/PreTreatmentSelfTests.qml
+ sources/gui/qml/pages/pretreatment/PreTreatmentPrime.qml
+ sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml
+ sources/gui/qml/pages/pretreatment/PreTreatmentUltrafiltration.qml
sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml
sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml
-
- sources/gui/qml/pages/pretreatment/connection/PreTreatmentUltrafiltration.qml
- sources/gui/qml/pages/pretreatment/connection/PreTreatmentConnectionStack.qml
-
sources/gui/qml/pages/treatment/TreatmentStack.qml
sources/gui/qml/pages/treatment/TreatmentHome.qml
@@ -282,15 +283,18 @@
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBolusVolume.qml
- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationStack.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationConfirm.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml
- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltration.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStack.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
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentIsolatedUFDurationEdit.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentIsolatedUFVolumeEdit.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentIsolatedUFConfirm.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml
Index: sources/gui/qml/components/HeaderBar.qml
===================================================================
diff -u -r4a2b83dcb56555861d2c741a8e8894e5b07e24bf -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 4a2b83dcb56555861d2c741a8e8894e5b07e24bf)
+++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -26,17 +26,28 @@
MouseArea { id: _mouseArea
anchors.fill : parent
- // TODO: disable this later. this is only for diagnostic purpose.
- onDoubleClicked : {
- if ( _GuiView.dryDemoMode ) {
- let dryDemoTempID = 99
- let id = vConfirm.id
- vConfirm.id = dryDemoTempID
- vConfirm.doConfirm( true )
- vConfirm.id = id
+ property real lastClickTime: 0
+ property int doubleClickThreshold: 500 // ms
+
+ // had to implement my own double click because the onDoubleClicked was not user friednly for touch.
+ // a 500 ms threshold between clicks has bee added
+ onClicked : {
+ const now = Date.now()
+ if (now - _mouseArea.lastClickTime < _mouseArea.doubleClickThreshold) {
+ if ( _GuiView.dryDemoMode ) {
+ let dryDemoTempID = 99
+ let id = vConfirm.id
+ vConfirm.id = dryDemoTempID
+ vConfirm.doConfirm( true )
+ vConfirm.id = id
+ }
+ else {
+ _diagnosticsDialog.open()
+ }
+ lastClickTime = 0
}
else {
- _diagnosticsDialog.open()
+ lastClickTime = now
}
}
}
@@ -122,8 +133,16 @@
titlePixelSize : 32
backgroundColor : Colors.transparent
highlightHeight : 15
+ model : _model
isMainTreatment : true
onHiddenChanged: { if (hidden) { index = 0 } }
+
+ ListModel { id: _model
+ ListElement { text: qsTr("Treatment"); visible: true; screen: 0 } // MainMenu.Treatment
+ ListElement { text: qsTr("Trends"); visible: true; screen: 1 } // MainMenu.Trends
+ ListElement { text: qsTr("Heparin"); visible: true; screen: 2 } // MainMenu.Heparin
+ ListElement { text: qsTr("HDF"); visible: false; screen: 3 } // MainMenu.HDF
+ }
}
Row { id: _headerButtonRow
@@ -142,24 +161,24 @@
onPressed : _endTreatmentDialog.open()
}
- VitalsButton { id : _vitalsButton
+ IconButton { id : _prescriptionButton
+ iconSize : Variables.headerIconDiameter
+ iconImageSource : "qrc:/images/iPrescription"
extraSpace : _headerButtonRow.spacing
visible : vTDOpMode.preTreatment ||
vTDOpMode.inTreatment ||
vTDOpMode.postTreatment
- onPressed : _treatmentAdjustmentVitals.open()
+ onPressed : _headerbarPrescription.open()
}
- IconButton { id : _prescriptionButton
- iconSize : Variables.headerIconDiameter
- iconImageSource : "qrc:/images/iPrescription"
+ VitalsButton { id : _vitalsButton
extraSpace : _headerButtonRow.spacing
visible :( vTDOpMode.preTreatment ||
vTDOpMode.inTreatment ||
vTDOpMode.postTreatment ) && ! _root.isCreateRx
- onPressed : _headerbarPrescription.open()
+ onPressed : _treatmentAdjustmentVitals.open()
}
IconButton { id : _wifiButton
@@ -170,23 +189,16 @@
onPressed : _headerbarWifi.openDialog(_wifiButton)
}
- IconButton { id : _cloudSyncButton
- iconSize : Variables.headerIconDiameter
- iconImageSource : "qrc:/images/iCloudSync"
- extraSpace : _headerButtonRow.spacing
- enabled : false
+ // TODO Phase 2 👋👋👋
+// IconButton { id : _cloudSyncButton
+// iconSize : Variables.headerIconDiameter
+// iconImageSource : "qrc:/images/iCloudSync"
+// extraSpace : _headerButtonRow.spacing
+// enabled : false
- onPressed : print("CloudSync button pressed!")
- }
+// onPressed : print("CloudSync button pressed!")
+// }
- IconButton { id : _storageButton
- iconSize : Variables.headerIconDiameter
- iconImageSource : "qrc:/images/iStorage"
- extraSpace : _headerButtonRow.spacing
-
- onPressed : _headerbarStorage.openDialog(_storageButton)
- }
-
IconButton { id : _settingsButton
iconSize : Variables.headerIconDiameter
iconImageSource : "qrc:/images/iSettings"
Index: sources/gui/qml/components/RangeMarker.qml
===================================================================
diff -u -rad57884fca3e8a0916b6d6bf51a69264b9b5263f -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision ad57884fca3e8a0916b6d6bf51a69264b9b5263f)
+++ sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -28,11 +28,9 @@
property int decimal : 0
property alias text : _textValue
- property alias handle : _handle
property alias font : _textValue.font
property color color : Colors.rangeMarker
property alias thickness : _root.width
- property alias hasHandle : _handle.visible
property bool valueOnTop : false
property string unitText : ""
@@ -43,19 +41,6 @@
bottom : parent.bottom
}
- Rectangle { id: _handle
- visible : false
-
- width : _root.width * 3
- height : width
- radius : width
- color : _root.color
- anchors {
- top : _root.top
- horizontalCenter: parent.horizontalCenter
- }
- }
-
Rectangle { id: _stick
width : _root.width
height : _root.height
@@ -75,12 +60,12 @@
right : valueOnTop ? parent.left : undefined
top : valueOnTop ? undefined :
parent.top
- bottom : valueOnTop ? _handle.top :
+ bottom : valueOnTop ? _stick.top :
undefined
bottomMargin: valueOnTop ? 5 : 0
rightMargin : valueOnTop ? -12 : 5
topMargin : valueOnTop ? 0 : -5
- horizontalCenter: valueOnTop ? _handle.horizontalCenter : undefined
+ horizontalCenter: valueOnTop ? _stick.horizontalCenter : undefined
horizontalCenterOffset: {
if (valueOnTop) {
if (_root.parent !== undefined) {
Index: sources/gui/qml/globals/Colors.qml
===================================================================
diff -u -r81aec0b1316a43c46f8c27c773d8f95e695ec273 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 81aec0b1316a43c46f8c27c773d8f95e695ec273)
+++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -61,7 +61,7 @@
readonly property color dialogValueColor : "#385E92"
readonly property color darkDialogColor : "#091E31"
- readonly property color backgroundRangeRect : "#3e546e"
+ readonly property color backgroundRangeRect : "#2E4F76"
readonly property color highlightProgressBar : "#3d8eef"
readonly property color highlightMedProgressBar : "#1b2b3e"
readonly property color textProgressBar : "#88a3c5"
@@ -105,6 +105,7 @@
readonly property color textTextRectExtra : "#708795"
readonly property color line : "#094266"
+ readonly property color checkListLine : "#345477"
readonly property color pressuresText : white
readonly property color pressuresArterialBar : "#FF8282"
@@ -164,6 +165,8 @@
readonly property color roFeatured : "#E79DF6"
readonly property color roDefeatured : "#F9CD74"
+ readonly property color waterSampleContainer : "#2A425A"
+
// ---------- < PRS > Related Section ----------
// Alarm priority colors
function alarmPriorityColors(vPriority) {
Index: sources/gui/qml/globals/Fonts.qml
===================================================================
diff -u -rf7fdf92f3ab8ffea88d491b33f58b16f9617f237 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision f7fdf92f3ab8ffea88d491b33f58b16f9617f237)
+++ sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -75,15 +75,15 @@
readonly property int fontPixelDurationCurTime : 89
readonly property int fontPixelDurationAdjTime : 28
- readonly property int fontPixelStateListText : 20
- readonly property int fontPixelCirclProgressTimeSmall : 32
+ readonly property int fontPixelStateListText : 24
+ readonly property int fontPixelCirclProgressTimeSmall : 50
readonly property int fontPixelCirclProgressTimeNormal : 90
readonly property int fontPixelUltrafiltrationAdjustmentMetrics : 30
readonly property int fontPixelUltrafiltrationAdjustmentNotification : 32
readonly property int fontPixelUltrafiltrationAdjustmentConfirmation : 50
- readonly property int fontPixelUltrafiltrationRangeMarker : 32
- readonly property int fontPixelUltrafiltrationMinMaxLabel : 24
+ readonly property int fontPixelUltrafiltrationRangeMarker : 24
+ readonly property int fontPixelUltrafiltrationMinMaxLabel : 18
readonly property int fontPixelUltrafiltrationRateUnit : 16
readonly property int fontPixelRinsebackAdjustmentButton : 26
Index: sources/gui/qml/main.qml
===================================================================
diff -u -r69c86c57349b7d4a6ba47a801ba27b1c470fade5 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/main.qml (.../main.qml) (revision 69c86c57349b7d4a6ba47a801ba27b1c470fade5)
+++ sources/gui/qml/main.qml (.../main.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -69,6 +69,7 @@
// In-Treatment - Data
import VTreatmentBloodFlow 0.1
import VTreatmentDialysateFlow 0.1
+import VTreatmentIsolatedUF 0.1
import VTreatmentPressureOcclusion 0.1
import VTreatmentUltrafiltration 0.1
import VTreatmentTime 0.1
@@ -130,6 +131,9 @@
import VTreatmentAdjustmentDialysateFlowRate 0.1
import VTreatmentAdjustmentDialysateTemperature 0.1
import VTreatmentAdjustmentFlows 0.1
+import VTreatmentAdjustmentIsolatedUFDurationEdit 0.1
+import VTreatmentAdjustmentIsolatedUFVolumeEdit 0.1
+import VTreatmentAdjustmentIsolatedUFConfirm 0.1
import VTreatmentAdjustmentUltrafiltrationState 0.1
import VTreatmentAdjustmentUltrafiltrationEdit 0.1
import VTreatmentAdjustmentUltrafiltrationConfirm 0.1
@@ -231,6 +235,7 @@
VTDTemperature { id: vTDTemperature }
VTreatmentDialysateFlow { id: vTreatmentDialysateFlow }
+ VTreatmentIsolatedUF { id: vTreatmentIsolatedUF }
VTreatmentPressureOcclusion { id: vTreatmentPressureOcclusion }
VTreatmentUltrafiltration { id: vTreatmentUltrafiltration }
VTreatmentTime { id: vTreatmentTime }
@@ -294,6 +299,9 @@
VTreatmentRanges { id: vTreatmentRanges }
VTreatmentAdjustmentBolusVolume { id: vTreatmentAdjustmentBolusVolume }
+ VTreatmentAdjustmentIsolatedUFDurationEdit { id: vTreatmentAdjustmentIsolatedUFDurationEdit }
+ VTreatmentAdjustmentIsolatedUFVolumeEdit { id: vTreatmentAdjustmentIsolatedUFVolumeEdit }
+ VTreatmentAdjustmentIsolatedUFConfirm { id: vTreatmentAdjustmentIsolatedUFConfirm }
VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline }
VTreatmentAdjustmentVitals { id: vTreatmentAdjustmentVitals }
VTreatmentAdjustmentUltrafiltrationState { id: vTreatmentAdjustmentUltrafiltrationState }
@@ -367,6 +375,10 @@
function onStandbyWaitDisinfectChanged ( vValue ) { _mainMenu.isTreatment() }
}
+ Connections { target: _mainStack
+ function onIsCreateRx ( vState ) { _headerBar.isCreateRx = vState }
+ }
+
// 9 - Others
HeaderBar { id: _headerBar
anchors.top: parent.top
Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml
===================================================================
diff -u -rd1793ffb8c9a4bc3aee524aafbf0042175e91229 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision d1793ffb8c9a4bc3aee524aafbf0042175e91229)
+++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -67,6 +67,7 @@
_heparinStopTimeControl .refresh()
_dialysateTemperatureControl .refresh()
_salineBolusVolumeControl .refresh()
+ _bpMeasurementIntervalControl .refresh()
}
function clear () {
@@ -439,28 +440,23 @@
unitText : Variables.unitTextDuration
valid : ! vTreatmentCreate.bloodPressureMeasureIntervalRejectReason
- contentItem : BaseComboBox { id: _bpMeasurementIntervalControl
- anchors.rightMargin : Variables.defaultMargin * 2
- anchors.leftMargin : anchors.rightMargin
- anchors.topMargin : Variables.defaultMargin / 2
- anchors.bottomMargin: anchors.topMargin
- isActive : vTreatmentCreate.bloodPressureMeasureIntervalSet
- enabled : _root.editingEnabled
- currentIndex : vTreatmentRanges.bloodPressureMeasureInterval.indexOf(vTreatmentCreate.bloodPressureMeasureInterval.toString())
- model : vTreatmentRanges.bloodPressureMeasureInterval
- canOff : true
- centerHorizontally : true
+ contentItem : ValueAdjusterCustom { id: _bpMeasurementIntervalControl
+ editable : _root.editingEnabled
+ isActive : vTreatmentCreate.bloodPressureMeasureIntervalSet
+ defaultValue : vTreatmentRanges.vitalsInterval
+ value : vTreatmentRanges.bloodPressureMeasureInterval.indexOf(vTreatmentCreate.bloodPressureMeasureInterval.toString())
+ model : vTreatmentRanges.bloodPressureMeasureInterval
+ canOff : true
- onClear : {
- vTreatmentCreate.bloodPressureMeasureIntervalSet = false
- }
+ onDidActiveChange: function(vState) { vTreatmentCreate.bloodPressureMeasureIntervalSet = vState }
- onActivated : {
+ onDidChange : function(vValue) {
if ( ! _bpMeasurementInterval.valid ) {
vTreatmentCreate.bloodPressureMeasureIntervalRejectReason = Variables.noRejectReason
}
- vTreatmentCreate.bloodPressureMeasureInterval = vTreatmentRanges.bloodPressureMeasureInterval[_bpMeasurementIntervalControl.currentIndex]
- vTreatmentCreate.bloodPressureMeasureIntervalSet = true
+
+ vTreatmentCreate.bloodPressureMeasureInterval = vTreatmentRanges.bloodPressureMeasureInterval[vValue]
+ vTreatmentCreate.bloodPressureMeasureIntervalSet = true
}
}
}
Index: sources/view/td/data/VTreatmentRanges.cpp
===================================================================
diff -u -r6e41d2d9f431580bb350db71cc52dd40e60e1a28 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/view/td/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision 6e41d2d9f431580bb350db71cc52dd40e60e1a28)
+++ sources/view/td/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -66,7 +66,7 @@
heparinDispensingRateMax ( vData.mHepDispRateMax );
heparinDispensingRateDef ( vData.mHepDispRateDef );
heparinStopTimeMin ( vData.mHepStopTimeMin );
-
+ vitalsInterval ( vData.mVitalsIntervalDef );
acidConcentratePotassiumMin ( vData.mPotassiumMin );
acidConcentratePotassiumMax ( vData.mPotassiumMax );
acidConcentrateCalciumMin ( vData.mCalciumMin );
@@ -229,6 +229,8 @@
isConfigsOk = isConfigsOk && !_dryBicabCartridgeSizeOptions .isEmpty();
isConfigsOk = isConfigsOk && !_waterSampleTestResultRequired.isEmpty();
+ vitalsInterval(_bloodPressureMeasureInterval.indexOf(_vitalsDef));
+
FROMVARIANT_WITHRETURN ( dialysateTempDef , "Dialysate Temperature" , "Dialysate_Temperature_Def" , Float , isConfigsOk );
FROMVARIANT_WITHRETURN ( dialysateTempMin , "Dialysate Temperature" , "Dialysate_Temperature_Min" , Float , isConfigsOk );
FROMVARIANT_WITHRETURN ( dialysateTempMax , "Dialysate Temperature" , "Dialysate_Temperature_Max" , Float , isConfigsOk );
Index: sources/view/td/data/VTreatmentRanges.h
===================================================================
diff -u -r6e41d2d9f431580bb350db71cc52dd40e60e1a28 -r1164ea502e3fabdb55aa41923e0e566505f197ef
--- sources/view/td/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision 6e41d2d9f431580bb350db71cc52dd40e60e1a28)
+++ sources/view/td/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision 1164ea502e3fabdb55aa41923e0e566505f197ef)
@@ -37,6 +37,8 @@
{
Q_OBJECT
+ const QString _vitalsDef = "30"; // LEAHI_PRS_215
+
// Real-time properties received from TD from TreatmentRangesData
READONLY( quint32 , treatmentRanges_Duration_Min , 0)
READONLY( quint32 , treatmentRanges_Duration_Max , 0)
@@ -63,6 +65,8 @@
READONLY( QStringList , bicarbonateConcentrateOptions ,{})
READONLY( QStringList , dialyzerTypeOptions ,{})
READONLY( QStringList , bloodPressureMeasureInterval ,{})
+ VALUESET( quint32 , vitalsInterval , 0)
+
RANGESET( float , dialysateTemp , 0)
RANGESET( quint32 , salineBolusVolume , 0)