Index: leahi.qrc =================================================================== diff -u -r7c12b8ce1964a37e856ebcae205f8b4ed19f3c6a -r18e4634800357ac1d8bc1da1cad04836ba85d33c --- leahi.qrc (.../leahi.qrc) (revision 7c12b8ce1964a37e856ebcae205f8b4ed19f3c6a) +++ leahi.qrc (.../leahi.qrc) (revision 18e4634800357ac1d8bc1da1cad04836ba85d33c) @@ -5,6 +5,7 @@ sources/gui/qml/pages/ManagerStack.qml sources/gui/qml/pages/UserConfirmation.qml sources/gui/qml/pages/TreatmentFlowBase.qml + sources/gui/qml/pages/MainInitialization.qml sources/gui/qml/pages/settings/SettingsBase.qml @@ -39,6 +40,9 @@ 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/AlarmDialog.qml sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml @@ -122,6 +126,11 @@ resources/images/water_sample.png resources/images/ArrowDownDisabled.png 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 @@ -169,6 +178,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 @@ -190,6 +200,7 @@ sources/gui/qml/components/SubStepIndicator.qml sources/gui/qml/components/SDCInfo.qml sources/gui/qml/components/BaseChart.qml + sources/gui/qml/components/HelpNotification.qml sources/gui/qml/compounds/PressureRangeSlider.qml @@ -207,6 +218,8 @@ sources/gui/qml/compounds/ValueAdjusterCustom.qml sources/gui/qml/compounds/LabelUnitValueAdjuster.qml sources/gui/qml/compounds/SettingsSlider.qml + sources/gui/qml/compounds/AutoStepController.qml + sources/gui/qml/compounds/InteractiveImage.qml qtquickcontrols2.conf @@ -270,6 +283,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 @@ -279,6 +294,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 @@ -313,15 +329,15 @@ sources/gui/qml/pages/endtreatment/EndTreatmentRinsebackStack.qml sources/gui/qml/pages/endtreatment/EndTreatmentRecirculateStack.qml - sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml sources/gui/qml/pages/endtreatment/EndTreatmentBase.qml 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/GuiGlobals.h =================================================================== diff -u -rab7cddfe742a1c00e265a37effe043f2c3db8bec -r18e4634800357ac1d8bc1da1cad04836ba85d33c --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision ab7cddfe742a1c00e265a37effe043f2c3db8bec) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 18e4634800357ac1d8bc1da1cad04836ba85d33c) @@ -139,9 +139,9 @@ ID_Heparin = 0x8C00, // 140 ID_IsolatedUF = 0x9A00, // 154 ID_Rinseback = 0x8F00, // 143 //// ----- @LEAHIZED - ID_Recirculate = 0x5A00, // 90 + ID_Recirculate = 0xA800, // 168 ID_BloodPrime = 0x9700, // 151 - ID_TreatmentStop = 0x4900, // 73 + ID_TreatmentStop = 0x5B00, // 91 ID_Vitals = 0x6500, // 101 // Alarm Messages @@ -305,8 +305,8 @@ ID_AdjustRinsebackRsp = 0x9100, // 145 //// ----- @LEAHIZED // Recirculate - ID_AdjustRecirculateReq = 0x540F, // 84 //// ----- @CRAPIZED: had to change to avoid duplication - ID_AdjustRecirculateRsp = 0x5500, // 85 + ID_AdjustRecirculateReq = 0xA600, // 166 + ID_AdjustRecirculateRsp = 0xA700, // 167 // Treatment End ID_AdjustTreatmentEndReq = 0x8D00, // 141 @@ -328,8 +328,8 @@ // Treatment Log Data ID_TreatmentLogAvrgeData = 0x940F, // 148 //// ----- @CRAPIZED: had to change to avoid duplication - ID_TreatmentLogAlarmData = 0x950F, // 149 //// ----- @CRAPIZED: had to change to avoid duplication - ID_TreatmentLogEventData = 0x960F, // 150 //// ----- @CRAPIZED: had to change to avoid duplication + ID_TreatmentLogAlarmData = 0x6A00, // 106 //// ----- @LEAHIZED + ID_TreatmentLogEventData = 0x6B00, // 107 //// ----- @LEAHIZED // Disinfect ID_AdjustDisinfectModeReq = 0x9A0F, // 154 //// ----- @CRAPIZED: had to change to avoid duplication Index: sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml =================================================================== diff -u -r1286d74bd015276aab604808be2766136091c125 -r18e4634800357ac1d8bc1da1cad04836ba85d33c --- sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml (.../PostTreatmentBase.qml) (revision 1286d74bd015276aab604808be2766136091c125) +++ sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml (.../PostTreatmentBase.qml) (revision 18e4634800357ac1d8bc1da1cad04836ba85d33c) @@ -33,8 +33,11 @@ onVisibleChanged: if (visible) { _root.updateModel() } function updateModel () { - let group = stepNames[stackStepIndex] - if ( group === undefined ) group = "" + let stepName = stepNames[stackStepIndex] + if ( stepName === undefined ) stepName = "" + + let group = vSettings.groupFormat(stepName, _root.subStepName.length === 0 ? "" : _root.subStepName ) + let instructionsGroup = vSettings.instructions[group] if ( instructionsGroup !== undefined ) { Index: sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml =================================================================== diff -u -r1286d74bd015276aab604808be2766136091c125 -r18e4634800357ac1d8bc1da1cad04836ba85d33c --- sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml (.../PostTreatmentStack.qml) (revision 1286d74bd015276aab604808be2766136091c125) +++ sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml (.../PostTreatmentStack.qml) (revision 18e4634800357ac1d8bc1da1cad04836ba85d33c) @@ -31,31 +31,23 @@ stackView.initialItem : null enum StackStep { - Disconnection , + Disconnect , + Remove , Review , Disinfection } property var stepNames: [ - qsTr("Disconnection"), + qsTr("Disconnect" ), + qsTr("Remove" ), qsTr("Review" ), qsTr("Disinfection" ), ] - property int stackStepIndex : 0 + property int stackStepIndex : 0 + readonly property bool isDisconnect : _root.stackStepIndex === PostTreatmentStack.StackStep.Disconnect + readonly property bool isReview : _root.stackStepIndex === PostTreatmentStack.StackStep.Review - signal patientDisconnectionConfirm () - signal treatmentReviewConfirm () - signal disposablesRemovalConfirm () - signal disposablesRemovalBack () - - // TODO fix in post treatment - onPatientDisconnectionConfirm : { vPostTreatmentAdjustmentDisposablesRemovalConfirm .doConfirm( ) } -// /* No wait for Rsp, so navigates => */ page( _treatmentReviewConfirm ) -// /* After navigation ask for Tx data */ vPostTreatmentAdjustmentTreatmentLog .doRequest( )} - onTreatmentReviewConfirm : { vPostTreatmentAdjustmentPatientDisconnectionConfirm .doConfirm( )} -// onDisposablesRemovalConfirm : vPostTreatmentAdjustmentDisposablesRemovalConfirm .doConfirm( ) - onDisposablesRemovalBack : page( _treatmentReviewConfirm ) onVisibleChanged: { if (visible) { _mainMenu.hidden = true @@ -68,14 +60,17 @@ function confirmClicked() { switch ( _root.stackStepIndex ) { - case PostTreatmentStack.Disconnection: - _root.patientDisconnectionConfirm() + case PostTreatmentStack.Disconnect: + _postTreatmentDisconnectStack.continueClicked() break + case PostTreatmentStack.Remove: + vPostTreatmentAdjustmentDisposablesRemovalConfirm.doConfirm() + break case PostTreatmentStack.Review: - _root.treatmentReviewConfirm() + page( _postTreatmentDisinfection ) break case PostTreatmentStack.Disinfection: - _root.disposablesRemovalConfirm() + // Skip button - go back to standby -- Finish Treatment break default: break @@ -84,30 +79,46 @@ function backClicked() { switch ( _root.stackStepIndex ) { - case PostTreatmentStack.Disconnection: + case PostTreatmentStack.Disconnect: + _postTreatmentDisconnectStack.backClicked() break - case PostTreatmentStack.Review: - break case PostTreatmentStack.Disinfection: - _root.disposablesRemovalBack () + page( _postTreatmentReview) break + case PostTreatmentStack.Remove: + case PostTreatmentStack.Review: default: break } } function confirmButtonText() { switch ( _root.stackStepIndex ) { - case PostTreatmentStack.Disconnection: - return qsTr("Auto Eject") + case PostTreatmentStack.Disconnect: case PostTreatmentStack.Review: - return qsTr("NEXT") + return qsTr("Continue") + case PostTreatmentStack.Remove: + return qsTr("Auto Eject") case PostTreatmentStack.Disinfection: + return qsTr("Skip") default: - return qsTr("CONFIRM") + return qsTr("Next") } } + function backEnabled() { + switch ( _root.stackStepIndex ) { + case PostTreatmentStack.Disconnect: + return _postTreatmentDisconnectStack.backEnabled() + case PostTreatmentStack.Remove: + case PostTreatmentStack.Review: // fallthrough + return false + case PostTreatmentStack.Disinfection: + default: + return true + } + } + StepNavigationTitleBar { id: _titleBar stepIndex : _root.stackStepIndex anchors { @@ -119,55 +130,67 @@ } confirmText.text: confirmButtonText() confirmVisible : true - backVisible : stackStepIndex === PostTreatmentStack.Disinfection + backVisible : _root.backEnabled() width : _root.width stepNames : _root.stepNames + + subStepIndex : isDisconnect ? _postTreatmentDisconnectStack.subStepIndex + 1 : 0 + + subSteps : { + let arr =Array(stepNames.length).fill(0) + arr[ PostTreatmentStack.Disconnect] = PostTreatmentDisconnectStack.Step.Count + return arr + } + onBackClicked : _root.backClicked() onConfirmClicked: _root.confirmClicked() - } - ExportButton { id: _exportButton - isSmall : true - anchors.top : parent.top - anchors.left : parent.left - visible : stackStepIndex === PostTreatmentStack.Review - enabled : vPostTreatmentAdjustmentTreatmentLog.isIdle && _GuiView.usbIsReady && !_GuiView.exportRunning - onClicked : vPostTreatmentAdjustmentTreatmentLog.doExport() - } + Row { id: _qrRow + spacing : Variables.defaultMargin + visible : _root.isReview - USBButton { id: _usbButton - anchors.top : _exportButton.top - anchors.left : _exportButton.right - anchors.leftMargin: Variables.minVGap - enabled : _GuiView.usbIsReady && !_GuiView.exportRunning - visible : stackStepIndex === PostTreatmentStack.Review - } + anchors { + left : _titleBar.left + leftMargin : Variables.defaultMargin * 2 + top : _titleBar.top + topMargin : Variables.defaultMargin * 2 + } - PostTreatmentBase { id: _patientDisconnectionConfirm - objectName :"_patientDisconnectionConfirm" - instructionBased : true - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Disconnection } - } + QRCode { id: _qrCode + anchors.verticalCenter : parent.verticalCenter + anchors.verticalCenterOffset: -5 + qrcode : vPostTreatmentAdjustmentTreatmentLog.txCode + clear : ! _root.visible + } - PostTreatmentReview { id: _treatmentReviewConfirm - objectName :"_treatmentReviewConfirm" - instructionBased : false - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Review } - - onItemClicked : { - _detailTest.title.text = itemsText[vIndex] - push(_detailTest) + Text { id: _txCodeText + anchors.bottom : _qrCode.bottom + text : vPostTreatmentAdjustmentTreatmentLog.txCode ? qsTr("Tx Code: ") + vPostTreatmentAdjustmentTreatmentLog.txCode : " " + color : "#DBE9FA" + font.pixelSize : Fonts.fontPixelButton + } } } - PostTreatmentBase { id: _detailTest - objectName :"_detailTest" - onBackClicked : pop() + PostTreatmentDisconnectStack { id: _postTreatmentDisconnectStack + objectName : "_postTreatmentDisconnectStack" + onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Disconnect; initStack() } } - PostTreatmentBase { id: _disposablesRemovalConfirm - objectName :"_disposablesRemovalConfirm" + PostTreatmentBase { id: _postTreatmentRemove + objectName : "_postTreatmentRemove" instructionBased : true + onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Remove; updateModel() } + } + + PostTreatmentReview { id: _postTreatmentReview + objectName : " _postTreatmentReview" + onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Review; + vPostTreatmentAdjustmentTreatmentLog.doRequest() } + } + + PostTreatmentBase { id: _postTreatmentDisinfection + objectName :" _postTreatmentDisinfection" onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Disinfection } } @@ -180,38 +203,46 @@ } Connections { target: vTDOpMode - function onPostTreatmentChanged ( vValue ) { page( _patientDisconnectionConfirm , vValue )} + function onPostTreatmentChanged ( vValue ) { page( _postTreatmentDisconnectStack , vValue )} } + // Disconnect stack + Connections { target: _postTreatmentDisconnectStack + function onGoToNextStep () { page ( _postTreatmentRemove )} + } + + // Confirm Patient Disconnection Connections { target: vPostTreatmentAdjustmentPatientDisconnectionConfirm function onAdjustmentTriggered ( vValue ) { if ( vPostTreatmentAdjustmentPatientDisconnectionConfirm.adjustment_Accepted ) { - _treatmentReviewConfirm.reasonText = "" - page( _disposablesRemovalConfirm ) + _postTreatmentReview.reasonText = "" + _postTreatmentDisconnectStack.goToDrain() } else { - _treatmentReviewConfirm.reasonText = vPostTreatmentAdjustmentPatientDisconnectionConfirm.text() + _postTreatmentReview.reasonText = vPostTreatmentAdjustmentPatientDisconnectionConfirm.text() } } } + // Auto - Eject Connections { target: vPostTreatmentAdjustmentDisposablesRemovalConfirm function onAdjustmentTriggered ( vValue ) { if ( vPostTreatmentAdjustmentDisposablesRemovalConfirm.adjustment_Accepted ) { - _patientDisconnectionConfirm.reasonText = "" - page( _treatmentReviewConfirm ) + _postTreatmentRemove.reasonText = "" + page( _postTreatmentReview ) } else { - _patientDisconnectionConfirm.reasonText = vPostTreatmentAdjustmentDisposablesRemovalConfirm.text() + _postTreatmentRemove.reasonText = vPostTreatmentAdjustmentDisposablesRemovalConfirm.text() } } } + // Treatment Review Connections { target: vPostTreatmentAdjustmentTreatmentLog function onAdjustmentTriggered ( vValue ) { if ( vPostTreatmentAdjustmentTreatmentLog.adjustment_Accepted ) { - _treatmentReviewConfirm.reasonText = "" + _postTreatmentReview.reasonText = "" } else { - _treatmentReviewConfirm.reasonText = vPostTreatmentAdjustmentTreatmentLog.text() + _postTreatmentReview.reasonText = vPostTreatmentAdjustmentTreatmentLog.text() } } }