Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml =================================================================== diff -u -r1f6d3544ea05941cd4c4d5ebf48603d2668cb421 -rbe918124565d9f0add371e25782804f19e0cba17 --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 1f6d3544ea05941cd4c4d5ebf48603d2668cb421) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision be918124565d9f0add371e25782804f19e0cba17) @@ -25,24 +25,50 @@ import "qrc:/pages/pretreatment" Item { id: _root - enum Action { - Edit , - Select , - Clear - } - readonly property int cellWidth : width / 2 - ( rowSpacing / 2 ) readonly property int cellHeight : ( _contentRow.height ) / 7 - ( columnSpacing ) readonly property int rowSpacing : Variables.defaultMargin * 3 readonly property int columnSpacing : 15 readonly property bool isValidated : vTreatmentCreate.parametersValidated + readonly property string editRx : qsTr( "Edit Rx" ) + readonly property string selectRx : qsTr( "Select Rx" ) + readonly property string clearAll : qsTr( "Clear All" ) + property bool editingEnabled : true - onIsValidatedChanged : if ( ! isValidated ) { enableEditing () } + onIsValidatedChanged : canEdit ( ! isValidated ) - function enableEditing () { editingEnabled = true } + function canEdit (state) { editingEnabled = state } + function activateAndRefresh() { + refreshAll () // needs to be first + vTreatmentCreate.bloodFlowRateSet = true + vTreatmentCreate.dialysateFlowRateSet = true + vTreatmentCreate.treatmentDurationSet = true + vTreatmentCreate.heparinDispensingRateSet = true + vTreatmentCreate.heparinBolusVolumeSet = true + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.dialysateTempSet = true + vTreatmentCreate.salineBolusVolumeSet = true + vTreatmentCreate.bloodPressureMeasureIntervalSet = true + vTreatmentCreate.acidConcentrateSet = true + vTreatmentCreate.bicarbonateConcentrateSet = true + vTreatmentCreate.dialyzerTypeSet = true + } + + function refreshAll () { + _bloodFlowRateControl .refresh() + _dialysateFlowRateControl .refresh() + _durationControl .refresh() + _heparinDispensingRateControl .refresh() + _heparinBolusVolumeControl .refresh() + _heparinStopTimeControl .refresh() + _dialysateTemperatureControl .refresh() + _salineBolusVolumeControl .refresh() + _bpMeasurementIntervalControl .refresh() + } + function clear () { vTreatmentCreate.patientID = "" _bloodFlowRateControl .clear() @@ -58,7 +84,7 @@ _salineBolusVolumeControl .clear() _bpMeasurementIntervalControl .clear() clearErrors() - enableEditing () + canEdit (true) } function clearErrors() { @@ -77,18 +103,18 @@ } function confirmReady () { - return _bloodFlowRateControl .active && _bloodFlowRate .valid && - _dialysateFlowRateControl .active && _dialysateFlowRate .valid && - _durationControl .active && _duration .valid && - _heparinDispensingRateControl .active && _heparinDispensingRate .valid && - _heparinBolusVolumeControl .active && _heparinBolusVolume .valid && - _heparinStopTimeControl .active && _heparinStopTime .valid && - _acidConcentrateComboBox .active && - _bicarbonateConcentrateComboBox .active && - _dialyzerTypeComboBox .active && - _dialysateTemperatureControl .active && _dialysateTemperature .valid && - _salineBolusVolumeControl .active && _salineBolusVolume .valid && - _bpMeasurementIntervalControl .active && _bpMeasurementInterval .valid + return _bloodFlowRateControl .isActive && _bloodFlowRate .valid && + _dialysateFlowRateControl .isActive && _dialysateFlowRate .valid && + _durationControl .isActive && _duration .valid && + _heparinDispensingRateControl .isActive && _heparinDispensingRate .valid && + _heparinBolusVolumeControl .isActive && _heparinBolusVolume .valid && + _heparinStopTimeControl .isActive && _heparinStopTime .valid && + _acidConcentrateComboBox .isActive && + _bicarbonateConcentrateComboBox .isActive && + _dialyzerTypeComboBox .isActive && + _dialysateTemperatureControl .isActive && _dialysateTemperature .valid && + _salineBolusVolumeControl .isActive && _salineBolusVolume .valid && + _bpMeasurementIntervalControl .isActive && _bpMeasurementInterval .valid } function validate () { @@ -105,19 +131,17 @@ function confirm () { vTreatmentCreate.doConfirm() } Connections{ target: vTreatmentCreate - function onDidValidationPass ( vValue ) { + function onDidValidationPass ( ) { vPostTreatmentAdjustmentTreatmentLog.heparinDispensingRateOff = vTreatmentCreate.heparinDispensingRateOff = ! vTreatmentCreate.heparinDispensingRate vPostTreatmentAdjustmentTreatmentLog.heparinBolusVolumeOff = vTreatmentCreate.heparinBolusVolumeOff = ! vTreatmentCreate.heparinBolusVolume - + activateAndRefresh() // refresh values on validation clearErrors() - _root.editingEnabled = false } } Connections { target: _acidConcentrateAdjustment function onAccepted () { - _acidConcentrateComboBox.currentIndex = vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.find(_acidConcentrateAdjustment.adjustment) - _acidConcentrateComboBox.active = vTreatmentCreate.acidConcentrateSet = true + vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.find(_acidConcentrateAdjustment.adjustment) } } @@ -146,7 +170,8 @@ verticalCenterOffset: 5 } - model : [qsTr("Edit Rx"), qsTr("Select Rx"), qsTr("Clear All")] + model : ! vTreatmentCreate.parametersValidated ? [ _root.selectRx, _root.clearAll ]: + [ _root.editRx, _root.selectRx, _root.clearAll ] height : 50 width : 75 dropDownWidth : 250 @@ -155,22 +180,19 @@ displayText : "" iconSource : "qrc:/images/iMenuDot" backgroundColor : Colors.transparent - visible : ! vTreatmentCreate.parametersValidated + visible : ! vTDOpMode.inTreatment onActivated: { - switch (currentIndex) { - case PreTreatmentCreateContent.Edit: - _root.enableEditing() - break - case PreTreatmentCreateContent.Select: - print("TODO: Open and Select from Prescription Manager " ) - break - case PreTreatmentCreateContent.Clear: - _root.clear() - break - default: // Unknown state - break - } + const selectedItem = model[currentIndex] + + // only send AdjustParametersConfirmRequestData::eCancel when validated + // Telling FW user is canceling confirm treatment parameters + if ( vTreatmentCreate.parametersValidated ) { vTreatmentCreate.doCancel() } + + if ( selectedItem === _root.editRx ) { /*All parameters set to edit if parameters are validated */ } + else if ( selectedItem === _root.selectRx ) { print("TODO: Open and Select from Prescription Manager") } + else if ( selectedItem === _root.clearAll ) { _root.clear() } + else { /*Unknown state */ } } } @@ -200,10 +222,12 @@ contentItem : TextEntry { id: _pretreatmentPatientIDEntry clip : true - textInput.width : parent.width - Variables.defaultMargin * 5 + textInput.width : parent.width - Variables.defaultMargin * 4 text : vTreatmentCreate.patientID anchors.centerIn : parent - textInput.font.pixelSize : Fonts.fontPixelValueControl + textInput.maximumLength : 20 // LEAHI-PRS-236 + textInput.rightPadding : Variables.defaultMargin + textInput.leftPadding : Variables.defaultMargin * 14 textInput.inputMethodHints : Qt.ImhPreferLowercase textInput.echoMode : TextInput.Normal textInput.validator : RegExpValidator { regExp: Variables.regExp_PatientID } @@ -214,7 +238,7 @@ Text { id: _patientIDPlaceHolderText text : Variables.emptyEntry anchors.fill : parent - rightPadding : 115 + rightPadding : 125 horizontalAlignment : Text.AlignRight font.pixelSize : Fonts.fontPixelValueControl color : Colors.offWhite @@ -236,9 +260,12 @@ maximum : vTreatmentRanges.bloodFlowRateMax step : vTreatmentRanges.bloodFlowRateRes defaultValue : vTreatmentRanges.bloodFlowRateDef - onValueChanged : { + value : vTreatmentCreate.bloodFlowRate + isActive : vTreatmentCreate.bloodFlowRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.bloodFlowRateSet = vState } + onDidChange : function(vValue) { if ( ! _bloodFlowRate.valid ) { vTreatmentCreate.bloodFlowRateRejectReason = Variables.noRejectReason } - vTreatmentCreate.bloodFlowRate = value + vTreatmentCreate.bloodFlowRate = vValue } } } @@ -254,9 +281,12 @@ maximum : vTreatmentRanges.dialysateFlowRateMax step : vTreatmentRanges.dialysateFlowRateRes defaultValue : vTreatmentRanges.dialysateFlowRateDef - onValueChanged : { + value : vTreatmentCreate.dialysateFlowRate + isActive : vTreatmentCreate.dialysateFlowRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.dialysateFlowRateSet = vState } + onDidChange : function(vValue) { if ( ! _dialysateFlowRate.valid ) { vTreatmentCreate.dialysateFlowRateRejectReason = Variables.noRejectReason } - vTreatmentCreate.dialysateFlowRate = value + vTreatmentCreate.dialysateFlowRate = vValue } } } @@ -272,9 +302,12 @@ maximum : vTreatmentRanges.treatmentDurationMax step : vTreatmentRanges.treatmentDurationRes defaultValue : vTreatmentRanges.treatmentDurationDef - onValueChanged : { + value : vTreatmentCreate.treatmentDuration + isActive : vTreatmentCreate.treatmentDurationSet + onDidActiveChange: function(vState) { vTreatmentCreate.treatmentDurationSet = vState } + onDidChange : function(vValue) { if ( ! _duration.valid ) { vTreatmentCreate.treatmentDurationRejectReason = Variables.noRejectReason } - vTreatmentCreate.treatmentDuration = value + vTreatmentCreate.treatmentDuration = vValue // set heparin time to clear when set if ( _heparinStopTimeControl.enabled ) { _heparinStopTimeControl.clear() } @@ -293,11 +326,14 @@ maximum : vTreatmentRanges.heparinBolusVolumeMax step : vTreatmentRanges.heparinBolusVolumeRes defaultValue : vTreatmentRanges.heparinBolusVolumeDef + value : vTreatmentCreate.heparinBolusVolume decimal : Variables.heparinPrecision - allowOff : true - onValueChanged : { + canOff : true + isActive : vTreatmentCreate.heparinBolusVolumeSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinBolusVolumeSet = vState } + onDidChange : function(vValue) { if ( ! _heparinBolusVolume.valid ) { vTreatmentCreate.heparinBolusVolumeRejectReason = Variables.noRejectReason } - vTreatmentCreate.heparinBolusVolume = value + vTreatmentCreate.heparinBolusVolume = vValue } } } @@ -313,26 +349,29 @@ maximum : vTreatmentRanges.heparinDispensingRateMax step : vTreatmentRanges.heparinDispensingRateRes defaultValue : vTreatmentRanges.heparinDispensingRateDef + value : vTreatmentCreate.heparinDispensingRate decimal : Variables.heparinPrecision - allowOff : true - onValueChanged : { + canOff : true + isActive : vTreatmentCreate.heparinDispensingRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinDispensingRateSet = vState } + onDidChange : function(vValue) { if ( ! _heparinDispensingRate.valid ) { vTreatmentCreate.heparinDispensingRateRejectReason = Variables.noRejectReason } // set heparin time to clear when set OFF to value - if ( ! vTreatmentCreate.heparinDispensingRate && value ) { _heparinStopTimeControl.clear() } + if ( ! vTreatmentCreate.heparinDispensingRate && vValue ) { _heparinStopTimeControl.clear() } - vTreatmentCreate.heparinDispensingRate = value + vTreatmentCreate.heparinDispensingRate = vValue // if set to OFF set heparin stop time 0 if ( ! vTreatmentCreate.heparinDispensingRate ) { - _heparinStopTimeControl.active = true - _heparinStopTimeControl.value = 0 + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.heparinStopTime = 0 } } - onActiveChanged: { - if ( ! vTreatmentCreate.heparinDispensingRate && active ) { - _heparinStopTimeControl.active = true - _heparinStopTimeControl.value = 0 + onIsActiveChanged: { + if ( ! vTreatmentCreate.heparinDispensingRate && isActive ) { + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.heparinStopTime = 0 } } } @@ -349,11 +388,14 @@ maximum : _durationControl.value step : _durationControl.step defaultValue : _durationControl.value + value : vTreatmentCreate.heparinStopTime enabled : vTreatmentCreate.heparinDispensingRate - allowOff : true - onValueChanged : { + canOff : true + isActive : vTreatmentCreate.heparinStopTimeSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinStopTimeSet = vState } + onDidChange : function(vValue) { if ( ! _heparinStopTime.valid ) { vTreatmentCreate.heparinStopTimeRejectReason = Variables.noRejectReason } - vTreatmentCreate.heparinStopTime = value + vTreatmentCreate.heparinStopTime = vValue } } } @@ -394,7 +436,7 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - active : false + isActive : vTreatmentCreate.acidConcentrateSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.acidConcentrate model : vTreatmentRanges.acidConcentrateOptions @@ -421,7 +463,7 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - active : false + isActive : vTreatmentCreate.bicarbonateConcentrateSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.bicarbonateConcentrate model : vTreatmentRanges.bicarbonateConcentrateOptions @@ -444,7 +486,7 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - active : false + isActive : vTreatmentCreate.dialyzerTypeSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.dialyzerType model : vTreatmentRanges.dialyzerTypeOptions @@ -468,10 +510,13 @@ maximum : vTreatmentRanges.dialysateTempMax step : vTreatmentRanges.dialysateTempRes defaultValue : vTreatmentRanges.dialysateTempDef + value : vTreatmentCreate.dialysateTemp decimal : Variables.dialysateTempPrecision - onValueChanged : { + isActive : vTreatmentCreate.dialysateTempSet + onDidActiveChange: function(vState) { vTreatmentCreate.dialysateTempSet = vState } + onDidChange : function(vValue) { if ( ! _dialysateTemperature.valid ) { vTreatmentCreate.dialysateTempRejectReason = Variables.noRejectReason } - vTreatmentCreate.dialysateTemp = value + vTreatmentCreate.dialysateTemp = vValue } } } @@ -487,9 +532,12 @@ maximum : vTreatmentRanges.salineBolusVolumeMax step : vTreatmentRanges.salineBolusVolumeRes defaultValue : vTreatmentRanges.salineBolusVolumeDef - onValueChanged : { + value : vTreatmentCreate.salineBolusVolume + isActive : vTreatmentCreate.salineBolusVolumeSet + onDidActiveChange: function(vState) { vTreatmentCreate.salineBolusVolumeSet = vState } + onDidChange : function(vValue) { if ( ! _salineBolusVolume.valid ) { vTreatmentCreate.salineBolusVolumeRejectReason = Variables.noRejectReason } - vTreatmentCreate.salineBolusVolume = value + vTreatmentCreate.salineBolusVolume = vValue } } } @@ -505,10 +553,13 @@ maximum : vTreatmentRanges.bloodPressureMeasureIntervalMax step : vTreatmentRanges.bloodPressureMeasureIntervalRes defaultValue : vTreatmentRanges.bloodPressureMeasureIntervalDef - allowOff : true - onValueChanged : { + 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 = value + vTreatmentCreate.bloodPressureMeasureInterval = vValue } } }