Index: sources/gui/qml/pages/treatment/TreatmentCreate.qml =================================================================== diff -u -r2c35a3fa17eef76c7a47578974b928c03f67c83d -ra51b1ec80d65c7cf9f7f3b86f45a637a6d42efc1 --- sources/gui/qml/pages/treatment/TreatmentCreate.qml (.../TreatmentCreate.qml) (revision 2c35a3fa17eef76c7a47578974b928c03f67c83d) +++ sources/gui/qml/pages/treatment/TreatmentCreate.qml (.../TreatmentCreate.qml) (revision a51b1ec80d65c7cf9f7f3b86f45a637a6d42efc1) @@ -29,17 +29,16 @@ */ ScreenItem { id: _root objectName: "TreatmentCreate"; // SquishQt testability - signal backClicked() - signal continueClicked() + signal clickedBack() + signal clickedContinue() backgroundRect.color: Colors.backgroundMainMenu TopMenuBarCreateTreatment { id: _topMenuBar anchors.top: parent.top anchors.left: parent.left width: parent.width - onBackClicked: { - _root.backClicked(); - + onClickedBack: { + _root.clickedBack(); } } @@ -83,10 +82,11 @@ selectedValueObjectName: objectName + "Value" text: "Blood Flow Rate" units: qsTr(" mL/min") - min: vCreateTreatment.bloodFlowRateMin - max: vCreateTreatment.bloodFlowRateMax + min: vTreatmentCreate.bloodFlowRateMin + max: vTreatmentCreate.bloodFlowRateMax + step: vTreatmentCreate.bloodFlowRateRes onSliderChanged: { - vCreateTreatment.bloodFlowRate = value; + vTreatmentCreate.bloodFlowRate = value; } } @@ -97,10 +97,11 @@ selectedValueObjectName: objectName + "Value" text: "Dialysate Flow Rate" units: qsTr(" mL/min") - min: vCreateTreatment.dialysateFlowRateMin - max: vCreateTreatment.dialysateFlowRateMax + min: vTreatmentCreate.dialysateFlowRateMin + max: vTreatmentCreate.dialysateFlowRateMax + step: vTreatmentCreate.dialysateFlowRateRes onSliderChanged: { - vCreateTreatment.dialysateFlowRate = value; + vTreatmentCreate.dialysateFlowRate = value; } } @@ -111,10 +112,11 @@ selectedValueObjectName: objectName + "Value" text: "Duration" units: qsTr(" min") - min: vCreateTreatment.durationMin - max: vCreateTreatment.durationMax + min: vTreatmentCreate.durationMin + max: vTreatmentCreate.durationMax + step: vTreatmentCreate.durationRes onSliderChanged: { - vCreateTreatment.duration = value; + vTreatmentCreate.duration = value; } } @@ -125,10 +127,12 @@ selectedValueObjectName: objectName + "Value" text: "Heparin Dispensing Rate" units: qsTr(" mL/hr") - min: vCreateTreatment.heparinDispensingRateMin - max: vCreateTreatment.heparinDispensingRateMax + min: vTreatmentCreate.heparinDispensingRateMin + max: vTreatmentCreate.heparinDispensingRateMax + step: vTreatmentCreate.heparinDispensingRateRes + onSliderChanged: { - vCreateTreatment.heparinDispensingRate = value; + vTreatmentCreate.heparinDispensingRate = value; } } @@ -139,10 +143,11 @@ selectedValueObjectName: objectName + "Value" text: "Heparin Bolus Volume" units: qsTr(" mL") - min: vCreateTreatment.heparinBolusVolumeMin - max: vCreateTreatment.heparinBolusVolumeMax + min: vTreatmentCreate.heparinBolusVolumeMin + max: vTreatmentCreate.heparinBolusVolumeMax + step: vTreatmentCreate.heparinBolusVolumeRes onSliderChanged: { - vCreateTreatment.heparinBolusVolume = value; + vTreatmentCreate.heparinBolusVolume = value; } } @@ -153,30 +158,34 @@ selectedValueObjectName: objectName + "Value" text: "Heparin Stop Time" units: qsTr(" min") - min: vCreateTreatment.heparinStopTimeMin - max: vCreateTreatment.heparinStopTimeMax + min: vTreatmentCreate.heparinStopTimeMin + max: vTreatmentCreate.heparinStopTimeMax + step: vTreatmentCreate.heparinStopTimeRes onSliderChanged: { - vCreateTreatment.heparinStopTime = value; + vTreatmentCreate.heparinStopTime = value; } } - RectSelectCreateTreatment { + SliderCreateTreatment { id: _salineBolus objectName: "_salineBolusRect" - name: "Saline Bolus" - buttonNames: vCreateTreatment.salineBolusOptions - onButtonClicked: { - vCreateTreatment.salineBolusVolume = selectedIndex; + text: "Saline Bolus" + units: qsTr(" min") + min: vTreatmentCreate.salineBolusVolumeMin + max: vTreatmentCreate.salineBolusVolumeMax + step: vTreatmentCreate.salineBolusVolumeRes + onSliderChanged: { + vTreatmentCreate.salineBolusVolume = value; } } RectSelectCreateTreatment { id: _acidConcentrate objectName: "_acidConcentrateRect" name: "Acid Concentrate" - buttonNames: vCreateTreatment.acidConcentrateOptions; + buttonNames: vTreatmentCreate.acidConcentrateOptions; onButtonClicked: { - vCreateTreatment.acidConcentrate = selectedIndex; + vTreatmentCreate.acidConcentrate = selectedIndex; } } @@ -186,9 +195,9 @@ name: "Bicarbonate Concentrate" numRows: 1 numCols: 2 - buttonNames: vCreateTreatment.bicarbonateConcentrateOptions; + buttonNames: vTreatmentCreate.bicarbonateConcentrateOptions; onButtonClicked: { - vCreateTreatment.bicarbonateConcentrate = selectedIndex; + vTreatmentCreate.bicarbonateConcentrate = selectedIndex; } } @@ -198,9 +207,9 @@ name: "Dialyzer Type" numRows: 3 numCols: 2 - buttonNames: vCreateTreatment.dialyzerTypeOptions; + buttonNames: vTreatmentCreate.dialyzerTypeOptions; onButtonClicked: { - vCreateTreatment.dialyzerType = selectedIndex; + vTreatmentCreate.dialyzerType = selectedIndex; } } @@ -211,11 +220,11 @@ selectedValueObjectName: objectName + "Value" text: "Dialysate Temperature" units: qsTr(" C") - step: 0.1 - min: vCreateTreatment.dialysateTempMin - max: vCreateTreatment.dialysateTempMax + min: vTreatmentCreate.dialysateTempMin + max: vTreatmentCreate.dialysateTempMax + step: vTreatmentCreate.dialysateTempRes onSliderChanged: { - vCreateTreatment.dialysateTemp = value; + vTreatmentCreate.dialysateTemp = value; } } @@ -239,17 +248,19 @@ lowUnits: " mmHg" highTitle: "High" highUnits: " mmHg" - lowMin: vCreateTreatment.arterialPressureLimitLowMin - lowMax: vCreateTreatment.arterialPressureLimitLowMax - highMin: vCreateTreatment.arterialPressureLimitHighMin - highMax: vCreateTreatment.arterialPressureLimitHighMax - lowValue: vCreateTreatment.arterialPressureLimitLowMin - highValue: vCreateTreatment.arterialPressureLimitHighMin + lowMin: vTreatmentCreate.arterialPressureLimitLowMin + lowMax: vTreatmentCreate.arterialPressureLimitLowMax + highMin: vTreatmentCreate.arterialPressureLimitHighMin + highMax: vTreatmentCreate.arterialPressureLimitHighMax + lowValue: vTreatmentCreate.arterialPressureLimitLowMin + highValue: vTreatmentCreate.arterialPressureLimitHighMin + lowStep: vTreatmentCreate.arterialPressureLimitLowRes + highStep: vTreatmentCreate.arterialPressureLimitHighRes onLowSliderChanged: { - vCreateTreatment.arterialPressureLimitLow = lowValue + vTreatmentCreate.arterialPressureLimitLow = lowValue } onHighSliderChanged: { - vCreateTreatment.arterialPressureLimitHigh = highValue + vTreatmentCreate.arterialPressureLimitHigh = highValue } } @@ -274,17 +285,19 @@ lowUnits: " mmHg" highTitle: "High" highUnits: " mmHg" - lowMin: vCreateTreatment.venousPressureLimitLowMin - lowMax: vCreateTreatment.venousPressureLimitLowMax - highMin: vCreateTreatment.venousPressureLimitHighMin - highMax: vCreateTreatment.venousPressureLimitHighMax - lowValue: vCreateTreatment.venousPressureLimitLowMin - highValue: vCreateTreatment.venousPressureLimitHighMin + lowMin: vTreatmentCreate.venousPressureLimitLowMin + lowMax: vTreatmentCreate.venousPressureLimitLowMax + highMin: vTreatmentCreate.venousPressureLimitHighMin + highMax: vTreatmentCreate.venousPressureLimitHighMax + lowValue: vTreatmentCreate.venousPressureLimitLowMin + highValue: vTreatmentCreate.venousPressureLimitHighMin + lowStep: vTreatmentCreate.venousPressureLimitLowRes + highStep: vTreatmentCreate.venousPressureLimitHighRes onLowSliderChanged: { - vCreateTreatment.venousPressureLimitLow = lowValue + vTreatmentCreate.venousPressureLimitLow = lowValue } onHighSliderChanged: { - vCreateTreatment.venousPressureLimitHigh = highValue + vTreatmentCreate.venousPressureLimitHigh = highValue } } @@ -295,12 +308,12 @@ selectedValueObjectName: objectName + "Value" text: "Blood Pressure Measurement Interval" units: qsTr(" min") - min: vCreateTreatment.bloodPressureMeasureIntervalMin - max: vCreateTreatment.bloodPressureMeasureIntervalMax - step: 1 + min: vTreatmentCreate.bloodPressureMeasureIntervalMin + max: vTreatmentCreate.bloodPressureMeasureIntervalMax + step: vTreatmentCreate.bloodPressureMeasureIntervalRes stepSnap: true onSliderChanged: { - vCreateTreatment.bloodPressureMeasureInterval = value + vTreatmentCreate.bloodPressureMeasureInterval = value } } @@ -311,12 +324,12 @@ selectedValueObjectName: objectName + "Value" text: "Rinseback Flow Rate" units: qsTr(" mL/min") - min: vCreateTreatment.rinsebackFlowRateMin - max: vCreateTreatment.rinsebackFlowRateMax - step: 1 + min: vTreatmentCreate.rinsebackFlowRateMin + max: vTreatmentCreate.rinsebackFlowRateMax + step: vTreatmentCreate.rinsebackFlowRateRes stepSnap: true onSliderChanged: { - vCreateTreatment.rinsebackFlowRate = value + vTreatmentCreate.rinsebackFlowRate = value } } @@ -328,9 +341,9 @@ borderColor: Colors.createTreatmentNotReady textColor: Colors.createTrTextNotReady button.onClicked: { - vCreateTreatment.saveTreatmentProfile = false; - if (vCreateTreatment.continueEnabled) { - _root.continueClicked() + vTreatmentCreate.saveTreatmentProfile = false; + if (vTreatmentCreate.continueEnabled) { + _root.clickedContinue() } } @@ -346,6 +359,13 @@ } } } + + Rectangle { + id: _spacer + height: 75 + width: parent.width + color: "transparent" + } } } @@ -386,9 +406,9 @@ } } - Connections { target: vCreateTreatment + Connections { target: vTreatmentCreate onContinueEnabledChanged: { - if (vCreateTreatment.continueEnabled) { + if (vTreatmentCreate.continueEnabled) { _continueRect.toggleEnabled(true) } else { _continueRect.toggleEnabled(false) @@ -406,7 +426,7 @@ _heparinBolusVolume.isActive = false; _heparinStopTime.isActive = false; - _salineBolus.setActive(false); + _salineBolus.isActive = false; _acidConcentrate.setActive(false); _bicarbonateConcentrate.setActive(false); _dialyzerType.setActive(false); @@ -510,5 +530,63 @@ console.debug("Rinseback flow rate validation failed: " + reason) _rinsebackFlowRate.setValid(false) } + + onScrollToParameter: { + let prefix = "data."; + let contentYMargin = 80; + let newContentY = 0; + + if (parameter === prefix+"bloodFlowRate") { + newContentY = _bloodFlowRate.mapToItem(_bloodFlowRate.parent, 0, 0).y; + } + else if (parameter === prefix+"dialysateFlowRate") { + newContentY = _dialysateFlowRate.mapToItem(_dialysateFlowRate.parent, 0, 0).y; + } + else if (parameter === prefix+"duration") { + newContentY = _duration.mapToItem(_duration.parent, 0, 0).y; + } + else if (parameter === prefix+"heparinDispensingRate") { + newContentY = _heparinDispensingRate.mapToItem(_heparinDispensingRate.parent, 0, 0).y; + } + else if (parameter === prefix+"heparinBolusVolume") { + newContentY = _heparinBolusVolume.mapToItem(_heparinBolusVolume.parent, 0, 0).y; + } + else if (parameter === prefix+"heparinStopTime") { + newContentY = _heparinStopTime.mapToItem(_heparinStopTime.parent, 0, 0).y; + } + else if (parameter === prefix+"salineBolus") { + newContentY = _salineBolus.mapToItem(_salineBolus.parent, 0, 0).y; + } + else if (parameter === prefix+"acidConcentrate") { + newContentY = _acidConcentrate.mapToItem(_acidConcentrate.parent, 0, 0).y; + } + else if (parameter === prefix+"bicarbonateConcentrate") { + newContentY = _bicarbonateConcentrate.mapToItem(_bicarbonateConcentrate.parent, 0, 0).y; + } + else if (parameter === prefix+"dialyzerType") { + newContentY = _dialyzerType.mapToItem(_dialyzerType.parent, 0, 0).y; + } + else if (parameter === prefix+"dialysateTemp") { + newContentY = _dialysateTemperature.mapToItem(_dialysateTemperature.parent, 0, 0).y; + } + else if (parameter === prefix+"arterialPressureLimitLow" || + parameter === prefix+"arterialPressureLimitHigh") { + newContentY = _arterialPressureLimits.mapToItem(_arterialPressureLimits.parent, 0, 0).y; + } + else if (parameter === prefix+"venousPressureLimitLow" || + parameter === prefix+"venousPressureLimitHigh") { + newContentY = _venousPressureLimits.mapToItem(_venousPressureLimits.parent, 0, 0).y; + } + else if (parameter === prefix+"bloodPressureMeasureInterval") { + newContentY = _bloodPressureMeasurementInterval.mapToItem(_bloodPressureMeasurementInterval.parent, 0, 0).y; + } + else if (parameter === prefix+"rinsebackFlowRate") { + newContentY = _rinsebackFlowRate.mapToItem(_rinsebackFlowRate.parent, 0, 0).y; + } + else { + return; + } + _flickable.contentY = newContentY - contentYMargin; + } } }