Index: leahi.qrc =================================================================== diff -u -r39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- leahi.qrc (.../leahi.qrc) (revision 39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26) +++ leahi.qrc (.../leahi.qrc) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -40,6 +40,8 @@ sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml sources/gui/qml/dialogs/EndTreatmentDialog.qml sources/gui/qml/dialogs/RinsebackCompleteDialog.qml + sources/gui/qml/dialogs/UfVolumeAdjustment.qml + sources/gui/qml/dialogs/HeparinRxAdjustment.qml sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml @@ -125,6 +127,9 @@ resources/images/ArrowUpDisabled.png resources/images/pause.png resources/images/play.png + resources/images/recirculate_main.png + resources/images/bloodpump.png + resources/images/edit_yellow.png sources/gui/qml/components/MainMenu.qml @@ -172,6 +177,7 @@ sources/gui/qml/components/Footer.qml sources/gui/qml/components/TextEntry.qml sources/gui/qml/components/ScrollBar.qml + sources/gui/qml/components/ScrollBar2.qml sources/gui/qml/components/FooterStatic.qml sources/gui/qml/components/TimeEntry.qml sources/gui/qml/components/Label.qml @@ -275,6 +281,8 @@ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentCreatePatientPrescription.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateTreatmentSettings.qml sources/gui/qml/pages/treatment/TreatmentStack.qml @@ -284,6 +292,7 @@ sources/gui/qml/pages/treatment/TreatmentSectionHeader.qml sources/gui/qml/pages/treatment/TreatmentHeparin.qml sources/gui/qml/pages/treatment/TreatmentHDF.qml + sources/gui/qml/pages/treatment/TreatmentTrends.qml sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml @@ -324,8 +333,9 @@ sources/gui/qml/pages/endtreatment/rinseback/EndTreatmentRinsebackInit.qml sources/gui/qml/pages/endtreatment/rinseback/EndTreatmentRinseback.qml - - + + sources/gui/qml/pages/endtreatment/recirculate/EndTreatmentRecirculateProgress.qml + sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -r171387aefe2f3d21245ff32fc9b9656c79bfa406 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 171387aefe2f3d21245ff32fc9b9656c79bfa406) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -1,4 +1,5 @@ import QtQuick 2.12 +import QtQuick.Controls 2.12 // StackView import "qrc:/components" import "qrc:/globals" @@ -7,12 +8,12 @@ property alias menuHidden : _headerMenu.hidden property alias headerMenuIndex : _headerMenu.index - property alias titleText : _title.text - property alias loggedUser : _loggedInUser.text + property alias userMode : _loggedInUser.text readonly property int currentScreen : _headerMenu.currentScreen - property bool isCreateRx : false // set in slot in parent + property bool isCreateRx : false // This is to hide in the create rx icon in the screen only property bool isHeparinFeatured : vSettings.heparinSyringePump property bool isHDFFeatured : vTreatmentCreate.treatmentModality === HeaderBar.Mode_HDF + property StackView activeStack : null width : Variables.applicationWidth height : Variables.headerHeight @@ -92,6 +93,9 @@ verticalAlignment : Text.AlignVCenter font.pixelSize : Fonts.fontHeaderbarTitle font.weight : Font.DemiBold + text : _root.activeStack && + _root.activeStack.currentItem && + _root.activeStack.currentItem.headerTitle ? _root.activeStack.currentItem.headerTitle : "" } Item { id: _dateTimeItem @@ -189,18 +193,18 @@ iconSize : Variables.headerIconDiameter iconImageSource : "qrc:/images/iPrescription" extraSpace : _headerButtonRow.spacing - visible : vTDOpMode.preTreatment || - vTDOpMode.inTreatment || - vTDOpMode.postTreatment + visible : ( vTDOpMode.preTreatment || + vTDOpMode.inTreatment || + vTDOpMode.postTreatment ) && ! _root.isCreateRx onPressed : _headerbarPrescription.open() } VitalsButton { id : _vitalsButton extraSpace : _headerButtonRow.spacing - visible :( vTDOpMode.preTreatment || + visible : vTDOpMode.preTreatment || vTDOpMode.inTreatment || - vTDOpMode.postTreatment ) && ! _root.isCreateRx + vTDOpMode.postTreatment onPressed : _treatmentAdjustmentVitals.open() } Index: sources/gui/qml/dialogs/NotificationDialog.qml =================================================================== diff -u -r4bb515b8b2cd9791b6411dd7d596767f2d0c0644 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 4bb515b8b2cd9791b6411dd7d596767f2d0c0644) +++ sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -21,6 +21,7 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" /*! * \brief Contains the Alarm Dialog Implementation @@ -43,6 +44,7 @@ property bool resumeVisible : false property bool rinsebackVisible : false + property bool temporaryBreakVisible: false property bool endVisible : false property bool okVisible : false property bool minVisible : true @@ -60,6 +62,7 @@ signal listClicked() signal resumeClicked() + signal temporaryBreakClicked() signal rinsebackClicked() signal endClicked() signal okClicked() @@ -121,118 +124,113 @@ bottom : _timerRect.top } - Item { id: _infoItem + AutoStepController { id: _autoStepController anchors { left : parent.left - leftMargin : Variables.defaultMargin * 2 + leftMargin : Variables.defaultMargin * 4 top : parent.top - topMargin : Variables.defaultMargin * 3 + topMargin : Variables.defaultMargin * 2 } - height : 35 - width : parent.width / 2 - NotificationBarSmall { id: _infoNotificationBar - color : "transparent" - imageSource : "qrc:/images/iHelp" - imageVisible : true - text : qsTr("TAP THE STEP NUMBER TO VIEW THE CORRESPONDING IMAGES") - textColor : "#595959" - imageDiameter : 25 - imageTopMargin : 3 - } + onTriggered : _listView.currentIndex = (_listView.currentIndex + 1) % _listView.count } - Row { id: _alarmContentRow + ListView {id: _listView anchors { - top : _infoItem.bottom + top : _autoStepController.bottom + topMargin : Variables.defaultMargin * 3 bottom : parent.bottom left : parent.left leftMargin : Variables.defaultMargin * 4 - right : parent.right - rightMargin : Variables.defaultMargin * 3 - margins : Variables.defaultMargin - } - spacing : Variables.defaultMargin * 3 - width : _descriptionRect.width - ListView {id: _listView - height : _alarmContentRow.height - width : parent.width * 0.65 - currentIndex: 0 - interactive : false - clip : true + height : _descriptionRect.height + width : _descriptionRect.width / 2 + currentIndex: 0 + interactive : false + clip : true - delegate: Item { id: _delegateControl - width : _listView.width - height : Variables.instructionHeight - clip : true + onCurrentIndexChanged: { + var item = model.get(_listView.currentIndex) + _root.figureImageSource = item.image ?? "" + _autoStepController.refresh() + } - Rectangle { id: _stepRect - height : 40 - width : height - radius : height - color : Colors.backgroundMainMenu + delegate: Item { id: _delegateControl + width : _listView.width + height : Variables.instructionHeight + clip : true - Text { id: _stepNumberRect - anchors.centerIn: parent - text : index + 1 - color : Colors.white - font.pixelSize : 20 - font.weight : Font.Medium - } + Rectangle { id: _stepRect + height : 40 + width : height + radius : height + color : _delegateControl.ListView.isCurrentItem ? Colors.backgroundMainMenu : Colors.offWhite + border { + color: Colors.backgroundMainMenu + width: 2 + } - layer.enabled : true - layer.effect : DropShadow { id: _dropShadow - horizontalOffset: 0 - verticalOffset : 3 - radius : 3.0 - samples : 7 - color : "#50000000" - source : _stepRect - anchors.fill : _stepRect - } + Text { id: _stepNumberRect + anchors.centerIn: parent + text : index + 1 + color : _delegateControl.ListView.isCurrentItem ? Colors.offWhite : Colors.backgroundMainMenu + font.pixelSize : 20 + font.weight : Font.Medium } - Text { id: _delegateText - anchors { - left : _stepRect.right - leftMargin : Variables.defaultMargin - right : _delegateControl.right - } - height : parent.height - width : parent.width - font.pixelSize : 23 - font.weight : _delegateControl.ListView.isCurrentItem ? Font.DemiBold : Font.Normal - color : _delegateControl.ListView.isCurrentItem ? "#18559E" : Colors.alarmDialogText - text : model.instruction - wrapMode : Text.WordWrap + layer.enabled : true + layer.effect : DropShadow { id: _dropShadow + horizontalOffset: 0 + verticalOffset : 3 + radius : 3.0 + samples : 7 + color : "#50000000" + source : _stepRect + anchors.fill : _stepRect } + } - MouseArea { - anchors.fill: parent - onClicked: { - if (_listView.currentIndex !== index) { - _listView.currentIndex = index - _root.figureImageSource = model.image - } - } + Text { id: _delegateText + anchors { + left : _stepRect.right + leftMargin : Variables.defaultMargin + right : _delegateControl.right } + height : parent.height + width : parent.width + font.pixelSize : Fonts.fontPixelInstructionStep + font.weight : _delegateControl.ListView.isCurrentItem ? Font.DemiBold : Font.Normal + color : _delegateControl.ListView.isCurrentItem ? "#18559E" : Colors.alarmDialogText + text : model.instruction + wrapMode : Text.WordWrap } - } - Item { id: _imageContainer - width: parent.width * 0.30 - height: _alarmContentRow.height - Variables.defaultMargin - anchors.verticalCenter: parent.verticalCenter - - Image { id: _figureImage - width: parent.width - height: parent.height - fillMode: Image.PreserveAspectFit + MouseArea { + anchors.fill: parent + onClicked: _listView.currentIndex = index } } } + + Image { id: _figureImage + anchors{ + right : parent.right + bottom : parent.bottom + bottomMargin: Variables.defaultMargin * 3 + } + } + // TODO TEST ON NEW DISPLAY AND ADD BACK IN +// InteractiveImage { id: _figureImage +// anchors { +// right : parent.right +// bottom : parent.bottom +// bottomMargin : Variables.defaultMargin * 3 + +// } +// width : parent.width / 2 +// height : _listView.height +// } } Rectangle { id: _timerRect @@ -293,15 +291,15 @@ } Row { id: _buttonGroup - property int buttonsWidth : 250 + property int buttonsWidth : 350 spacing: 50 anchors { bottom : parent.bottom horizontalCenter: parent.horizontalCenter rightMargin : spacing leftMargin : spacing - bottomMargin : Variables.defaultMargin * 2 + bottomMargin : Variables.defaultMargin * 4 } // IMPORTANT NOTE : Alarm Dialog buttons @@ -314,32 +312,46 @@ TouchRect { id : _resumeTouchRect visible : resumeVisible onPressed : resumeClicked() - text.text : qsTr("RESUME") + text.text : qsTr("Resume") width : _buttonGroup.buttonsWidth isDefault : true backgroundColor: Colors.white fgColor : isPressed ? Colors.white : borderColor selectColor : Qt.darker(borderColor, 1.15) + pixelSize : Fonts.fontPixelNotification } + TouchRect { id : _temporaryBreak + visible : temporaryBreakVisible + onPressed : temporaryBreakClicked() + text.text : qsTr("Temporary Break") + width : _buttonGroup.buttonsWidth + backgroundColor: Colors.white + fgColor : isPressed ? Colors.white : borderColor + selectColor : Qt.darker(borderColor, 1.15) + pixelSize : Fonts.fontPixelNotification + } + TouchRect { id : _rinsebackTouchRect visible : rinsebackVisible onPressed : rinsebackClicked() - text.text : qsTr("RINSEBACK") + text.text : qsTr("Return Blood & End Treatment") width : _buttonGroup.buttonsWidth backgroundColor: Colors.white fgColor : isPressed ? Colors.white : borderColor selectColor : Qt.darker(borderColor, 1.15) + pixelSize : Fonts.fontPixelNotification } TouchRect { id : _endTouchRect visible : endVisible onPressed : endClicked() - text.text : qsTr("END TREATMENT") + text.text : qsTr("End Treatment Only") width : _buttonGroup.buttonsWidth backgroundColor: Colors.white fgColor : isPressed ? Colors.white : borderColor selectColor : Qt.darker(borderColor, 1.15) + pixelSize : Fonts.fontPixelNotification } TouchRect { id : _okTouchRect @@ -350,6 +362,7 @@ backgroundColor: Colors.white fgColor : isPressed ? Colors.white : borderColor selectColor : Qt.darker(borderColor, 1.15) + pixelSize : Fonts.fontPixelNotification } } @@ -360,7 +373,7 @@ left : parent.left bottom : parent.bottom leftMargin : Variables.defaultMargin * 3 - bottomMargin: Variables.defaultMargin * 4 + bottomMargin: Variables.defaultMargin } color : Colors.alarmDialogGreyText font.pixelSize : Fonts.fontPixelAlarmID Index: sources/gui/qml/dialogs/headerbar/HeaderbarPrescription.qml =================================================================== diff -u -rf15173158b76aa650913d40a92881016e0625963 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/dialogs/headerbar/HeaderbarPrescription.qml (.../HeaderbarPrescription.qml) (revision f15173158b76aa650913d40a92881016e0625963) +++ sources/gui/qml/dialogs/headerbar/HeaderbarPrescription.qml (.../HeaderbarPrescription.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -22,15 +22,26 @@ import "qrc:/pages/pretreatment/create" ModalDialog { id: _root - readonly property bool isConfirmed: vTreatmentCreate.parametersConfirmed + readonly property bool isFirstTab : _headerbarPrescriptionContent.currentIndex === PreTreatmentCreateContent.PatientPrescription padding : Variables.defaultMargin - onOpened: _headerbarPrescriptionContent.canEdit( ! ( vTreatmentCreate.parametersValidated || vTreatmentCreate.parametersConfirmed ) ) + onOpened: _headerbarPrescriptionContent.canEdit( ! vTreatmentCreate.parametersValidated ) - onIsConfirmedChanged: if (isConfirmed) { _root.close() } Text { id: descriptiveText anchors { + top : parent.top + left : parent.left + leftMargin : Variables.defaultMargin * 5 + } + text : qsTr("[Original Prescribed Parameters]") + visible : vTDOpMode.inTreatment + color : Colors.mainTreatmentOrange + font.pixelSize : 24 + } + + Text { id: descriptiveText + anchors { top : parent.top topMargin : -10 horizontalCenter : parent.horizontalCenter @@ -44,7 +55,7 @@ PreTreatmentCreateContent { id: _headerbarPrescriptionContent anchors { top : parent.top - topMargin : Variables.defaultMargin * -1 + topMargin : Variables.defaultMargin left : parent.left leftMargin : Variables.defaultMargin * 3 right : parent.right @@ -71,16 +82,19 @@ bottomMargin : 5 rightMargin : Variables.defaultMargin * 3 } - enabled : _headerbarPrescriptionContent.confirmReady() - text.text : vTreatmentCreate.parametersValidated ? qsTr("CONFIRM") : qsTr("VALIDATE") - visible : ! vTDOpMode.inTreatment && ! isConfirmed + enabled : _root.isFirstTab ? true : _headerbarPrescriptionContent.confirmReady() + text.text : _root.isFirstTab ? qsTr("Next") : qsTr("Validate") + visible : ! vTDOpMode.inTreatment && ! vTreatmentCreate.parametersValidated onClicked : { - if ( vTreatmentCreate.parametersValidated ) { - _headerbarPrescriptionContent.confirm() - _root.close() + if ( _root.isFirstTab ) { + _headerbarPrescriptionContent.currentIndex = PreTreatmentCreateContent.TreatmentSettings + return } - else { _headerbarPrescriptionContent.validate() } + + if ( ! vTreatmentCreate.parametersValidated ) { + _headerbarPrescriptionContent.validate() + } } } } Index: sources/gui/qml/dialogs/watersample/WaterSampleDialysatePage.qml =================================================================== diff -u -r4a7dd11138d2321f1ab8d324b3bd25f02eaefe84 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/dialogs/watersample/WaterSampleDialysatePage.qml (.../WaterSampleDialysatePage.qml) (revision 4a7dd11138d2321f1ab8d324b3bd25f02eaefe84) +++ sources/gui/qml/dialogs/watersample/WaterSampleDialysatePage.qml (.../WaterSampleDialysatePage.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -10,13 +10,11 @@ anchors.fill: parent contentItem : Item { id: _content - readonly property int cellWidth : width / 2 - ( _row.spacing / 2 ) // 2 items for the row and subtract spacing for widths Text { id: _description anchors.top : parent.top text : qsTr("Test dialysate sample per your clinic's instructions.\n\nBased on facility policies, pH, conductivity, and temperature may be tested at this time") color : Colors.offWhite font.pixelSize : Fonts.fontPixelNotification - font.weight : Font.Light width : _content.width height : implicitHeight horizontalAlignment : Text.AlignHCenter @@ -26,15 +24,13 @@ Row { id: _row anchors.top : _description.bottom anchors.topMargin : Variables.defaultMargin * 4 - spacing : Variables.defaultMargin * 2 + spacing : Variables.defaultMargin * 3 Column { id: _leftColumn - spacing : Variables.defaultMargin + spacing : 15 LabelUnitContainer { id: _acidConcentrateContainer objectName : "_acidConcentrateContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Acid Concentrate") contentItem : Text { id: _acidConcentrateText anchors.centerIn: parent @@ -47,8 +43,6 @@ LabelUnitContainer { id: _bicarbonateCartrideSizeContainer objectName : "_bicarbonateCartrideSizeContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Bicarbonate Cartridge Size") contentItem : Text { id: _bicarbonateCartrideSizeText anchors.centerIn: parent @@ -58,11 +52,8 @@ } } - LabelUnitContainer { id: _sodiumContainer objectName : "_sodiumContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Sodium") unitText : Variables.unitTextConcentration contentItem : Text { id: _sodiumText @@ -75,8 +66,6 @@ LabelUnitContainer { id: _bicarbonateContainer objectName : "_bicarbonateContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Bicarbonate") unitText : Variables.unitTextConcentration contentItem : Text { id: _bicarbonateText @@ -93,8 +82,6 @@ LabelUnitContainer { id: _theoriticalCondictivityContainer objectName : "_theoriticalCondictivityContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Theoretical Conductivity") unitText : Variables.unitTextDialCond contentItem : Text { id: _theoriticalCondictivityText @@ -107,36 +94,30 @@ LabelUnitContainer { id: _independentConductivityReadingContainer1 objectName : "_independentConductivityReadingContainer1" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Independent Conductivity Reading 1") unitText : Variables.unitTextDialCond contentItem : Text { id: _independentConductivityReading1Text anchors.centerIn: parent - text : "13.7" // TODO add actual value + text : vDDConductivity.acidBicarbCondutivity1.toFixed(Variables.dialysateCondPrecision) color : Colors.offWhite font.pixelSize : Fonts.fontPixelValueControl } } LabelUnitContainer { id: _independentConductivityReadingContainer2 objectName : "_independentConductivityReadingContainer2" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight - text : qsTr("Independent Conductivity Reading 2") + text : qsTr("Dialysate Conductivity") unitText : Variables.unitTextDialCond contentItem : Text { id: _independentConductivityReading2Text anchors.centerIn: parent - text : "13.7" // TODO add actual value + text : vDDConductivity.acidBicarbCondutivity2.toFixed(Variables.dialysateCondPrecision) color : Colors.offWhite font.pixelSize : Fonts.fontPixelValueControl } } LabelUnitContainer { id: _dialsateTemperatureContainer objectName : "_dialsateTemperatureContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Dialysate Temperature") unitText : Variables.unitTextTemperature contentItem : Text { id: _dialsateTemperatureText @@ -149,8 +130,6 @@ LabelUnitContainer { id: _actualRORejectionPercentageContainer objectName : "_actualRORejectionPercentageContainer" - width : _content.cellWidth - height : Variables.adjustmentLabelUnitContainerHeight text : qsTr("Actual RO Rejection Percentage") unitText : "%" contentItem : Text { id: _actualRORejectionPercentageText Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r9d19afe7963673863456c676ba79236234e9e9e0 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 9d19afe7963673863456c676ba79236234e9e9e0) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -265,8 +265,11 @@ readonly property int substitutionPrecision : 1 // conductivity - readonly property int conductivityPrecision : 1 + readonly property int conductivityPrecision : 1 + // weight + readonly property int weightPrecision : 1 + function sizeConverted(vSize, vSizePowers, vRound = 2) { return ( vSize / vSizePowers // convert from byte to Giga byte @@ -317,6 +320,8 @@ readonly property string unitTextDispensingRate : qsTr("mL/hr") readonly property string unitTextRate : qsTr("L/h") readonly property string unitTextDialCond : qsTr("mS/cm") + // - Pressures + readonly property string unitPressure : qsTr("mmHg") // - Vitals readonly property string unitTextBloodPressure : qsTr("mmHg") readonly property string unitTextHeartBeat : qsTr("BPM" ) @@ -326,6 +331,8 @@ readonly property string unitTextFluid : qsTr("mL") readonly property string unitTextSaline : unitTextFluid readonly property string unitTextHeparin : unitTextFluid + readonly property string unitWeight : qsTr("Kg") + // - Pressure readonly property string unitTextPressure : qsTr("mmHg") // - Temperature Index: sources/gui/qml/pages/endtreatment/EndTreatmentBase.qml =================================================================== diff -u -r85ccb77b7343cb0ba133b6c13585e95a23ac237e -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/pages/endtreatment/EndTreatmentBase.qml (.../EndTreatmentBase.qml) (revision 85ccb77b7343cb0ba133b6c13585e95a23ac237e) +++ sources/gui/qml/pages/endtreatment/EndTreatmentBase.qml (.../EndTreatmentBase.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -31,7 +31,6 @@ property bool hasTimeout : false property alias timeout : _timeoutLoader.item property int timeoutValue : 0 - property string headerTitle : "" property string descriptionText : "" footer { Index: sources/gui/qml/pages/endtreatment/EndTreatmentRecirculateStack.qml =================================================================== diff -u -r5658d317534b3ed9324e130bed19ad8dee43b0b2 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/pages/endtreatment/EndTreatmentRecirculateStack.qml (.../EndTreatmentRecirculateStack.qml) (revision 5658d317534b3ed9324e130bed19ad8dee43b0b2) +++ sources/gui/qml/pages/endtreatment/EndTreatmentRecirculateStack.qml (.../EndTreatmentRecirculateStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -46,13 +46,19 @@ onVisibleChanged: { if (visible) { - _headerBar.titleText = stackView.currentItem.headerTitle ?? "" + _headerBar.activeStack = stackView + _headerBar.menuHidden = true } else { - _headerBar.titleText = "" + stackView.initialItem = null } } + component ButtonBackToRecirculate : TouchRect { + text.text : qsTr("BACK TO RECIRCULATE") + onClicked : recirculateBackClicked() + } + component ButtonEndTreatment : TouchRect { text.text : qsTr("End Treatment") height : Variables.defaultButtonHeight Index: sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml =================================================================== diff -u -r52d17dab2211c2e4d9160c55c316ad7a40ce4d6c -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml (.../PreTreatmentInstallStack.qml) (revision 52d17dab2211c2e4d9160c55c316ad7a40ce4d6c) +++ sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml (.../PreTreatmentInstallStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -24,6 +24,12 @@ property int subStepIndex: PreTreatmentInstallStack.Step.BloodSetTubing + onVisibleChanged: { + if (visible) { + _headerBar.activeStack = stackView + } + } + signal goToNextStep() signal goToPreviousStep() @@ -54,7 +60,7 @@ goToPreviousStep () break case PreTreatmentInstallStack.Step.BloodLines: - // cannot go back from here + page ( _preTreatmentBloodSetTubing ) break case PreTreatmentInstallStack.Step.PressureLinesAndDialyzer: page ( _preTreatmentBloodLines ) @@ -68,6 +74,8 @@ } function confirmButtonText() { + if ( vSettings.advancedMode ) { return qsTr("Auto Load") } + switch ( _root.subStepIndex ) { case PreTreatmentInstallStack.Step.BloodSetTubing: return qsTr("Auto Load") @@ -79,10 +87,6 @@ } } - function backEnabled() { - return subStepIndex !== PreTreatmentInstallStack.Step.BloodLines - } - // ----- Screens definitions PreTreatmentBase { id: _preTreatmentBloodSetTubing instructionBased : true Index: sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml =================================================================== diff -u -rfb3c31821213807fb8d0e40f4840181f370c23e4 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision fb3c31821213807fb8d0e40f4840181f370c23e4) +++ sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -49,12 +49,13 @@ if (visible) { rebuildMap() _mainMenu.hidden = true - _headerBar.titleText = qsTr("Setup Treatment") + _headerBar.activeStack = stackView _root.stackStepIndex = 0 + _headerBar.userMode = vSettings.advancedMode ? qsTr("[Advanced]") : "" } else { stackView.initialItem = null - _headerBar.titleText = "" + _headerBar.userMode = "" } } @@ -146,7 +147,7 @@ return _pretreatmentInstallation.confirmButtonText() case PreTreatmentStack.Step.CreateRx: return _pretreatmentCreate.isFirstTab ? qsTr("Next") : - qsTr("Validate") + qsTr("Confirm") case PreTreatmentStack.Step.Connect: return qsTr("Start") default: @@ -157,9 +158,8 @@ function backEnabled() { switch ( stepKeys[_root.stackStepIndex] ) { case PreTreatmentStack.Step.Concentrates: - return true case PreTreatmentStack.Step.Installation: - return _pretreatmentInstallation.backEnabled() + return true case PreTreatmentStack.Step.CreateRx: return ! _pretreatmentCreate.isFirstTab default: Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26 -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) @@ -125,6 +125,26 @@ } } + TreatmentTrends { id: _treatmentTrends + objectName: "_treatmentTrends" + Connections { target: vTDOpMode + function onInTreatmentChanged() { + if (vTDOpMode.inTreatment) { + _treatmentTrends.isParamExpanded = true + vTreatmentTrends.doClearData() + } + } + } + } + + TreatmentHeparin { id: _treatmentHeparin } + Connections { target: _treatmentHeparin + function onIdleTimeout ( ) { + _headerBar.headerMenuIndex = HeaderBar.Treatment // on heparin idle timeout go to main treatment + } + } + + TreatmentHDF { id: _treatmentHDF } Connections { target: _treatmentHDF function onSectionPressuresClicked ( ) { _treatmentAdjustmentPressuresLimits.open() @@ -136,11 +156,12 @@ } } - Connections { target: _treatmentHeparin - function onIdleTimeout ( ) { - _headerBar.headerMenuIndex = HeaderBar.Treatment // on heparin idle timeout go to main treatment - } - } + //// Treatment Adjustment Dialogs + TreatmentAdjustmentSetPoints { id: _treatmentAdjustmentSetPoints } + TreatmentAdjustmentPressuresLimits { id: _treatmentAdjustmentPressuresLimits } + TreatmentAdjustmentBolusVolume { id: _treatmentAdjustmentBolusVolume } + TreatmentAdjustmentUltrafiltrationStack { id: _treatmentAdjustmentUltrafiltration } + TreatmentAdjustmentHDF { id: _treatmentAdjustmentHDF } Connections { target: _treatmentAdjustmentSetPoints function onConfirmClicked ( vValue ) { @@ -151,9 +172,12 @@ _treatmentAdjustmentSetPoints.dialysateTemperature , // _treatmentAdjustmentSetPoints.hepatitus // TODO _treatmentAdjustmentSetPoints.acidConcentrate , - _treatmentAdjustmentSetPoints.bicarbConcentrate -// _treatmentAdjustmentSetPoints.sodium // TODO -// _treatmentAdjustmentSetPoints.bicarboante // TODO + vTreatmentRanges.acidConcentrateModel.get(_treatmentAdjustmentSetPoints.acidConcentrate).value, + _treatmentAdjustmentSetPoints.bicarbConcentrate , + _treatmentAdjustmentSetPoints.treatmentModality , + _treatmentAdjustmentSetPoints.hepatitus , + _treatmentAdjustmentSetPoints.sodium , + _treatmentAdjustmentSetPoints.bicarbonate ) } } @@ -201,6 +225,13 @@ Connections { target: vTreatmentAdjustmentSetPoints function onAdjustmentTriggered ( vValue ) { if (vTreatmentAdjustmentSetPoints.adjustment_Accepted) { + // TODO update setpoints here? + vTreatmentCreate.treatmentModality = _treatmentAdjustmentSetPoints.treatmentModality + vTreatmentCreate.acidConcentrate = _treatmentAdjustmentSetPoints.acidConcentrate + vTreatmentCreate.dryBicarbCartSize = _treatmentAdjustmentSetPoints.bicarbConcentrate + vTreatmentCreate.hepatitusBStatus = _treatmentAdjustmentSetPoints.hepatitus + vTreatmentCreate.sodium = _treatmentAdjustmentSetPoints.sodium + vTreatmentCreate.bicarbonate = _treatmentAdjustmentSetPoints.bicarbonate _treatmentAdjustmentSetPoints.close() } else {