Index: sources/gui/qml/main.qml =================================================================== diff -u -r821bf955d0ba7e028bccfee7c04ca77cf80a0bd4 -r108450c58851ff7c48c4607494b8cdae59952908 --- sources/gui/qml/main.qml (.../main.qml) (revision 821bf955d0ba7e028bccfee7c04ca77cf80a0bd4) +++ sources/gui/qml/main.qml (.../main.qml) (revision 108450c58851ff7c48c4607494b8cdae59952908) @@ -18,73 +18,101 @@ // Project // C++ imports -import Gui.View 0.1 -import Gui.Actions 0.1 +import Gui.View 0.1 +import Gui.Actions 0.1 -import VSettings 0.1 - // View classes -import VHDAccelerometer 0.1 -import VTreatmentAdjustmentVersions 0.1 +import VHDAccelerometer 0.1 +import VHDSyringePump 0.1 +// POST +import VHDPOSTData 0.1 +import VDGPOSTData 0.1 + +// Device +import VDevice 0.1 + +// Settings +import VSettings 0.1 +import VAdjustmentVersions 0.1 +import VAdjustmentService 0.1 +import VDateTime 0.1 +import VNetworkModel 0.1 +import VAdjustmentAlarmVolume 0.1 +import VBluetooth 0.1 + // States views -import VHDOperationMode 0.1 -import VPreTreatmentStates 0.1 -import VHDTreatmentStates 0.1 +import VHDOperationMode 0.1 +import VPreTreatmentStates 0.1 +import VHDTreatmentStates 0.1 +import VPostTreatmentStates 0.1 +import VDisinfectStates 0.1 + +// Treatment - Common +import VTreatmentVitals 0.1 // In-Treatment - Data -import VTreatmentBloodFlow 0.1 -import VTreatmentDialysateFlow 0.1 -import VTreatmentPressureOcclusion 0.1 -import VTreatmentUltrafiltration 0.1 -import VTreatmentTime 0.1 -import VTreatmentRinseback 0.1 -import VTreatmentRecirculate 0.1 -import VTreatmentBloodPrime 0.1 -import VTreatmentRanges 0.1 +import VTreatmentBloodFlow 0.1 +import VTreatmentDialysateFlow 0.1 +import VTreatmentPressureOcclusion 0.1 +import VTreatmentUltrafiltration 0.1 +import VTreatmentTime 0.1 +import VTreatmentRinseback 0.1 +import VTreatmentRecirculate 0.1 +import VTreatmentBloodPrime 0.1 +import VTreatmentStop 0.1 +import VTreatmentRanges 0.1 // Pre-Treatment -import VPreTreatmentAdjustmentInitTreatment 0.1 -import VDGFilterFlush 0.1 -import VPreTreatmentAdjustmentWaterSample 0.1 -import VPreTreatmentAdjustmentConsumablesConfirm 0.1 -import VPreTreatmentSelfTestNoCartridge 0.1 -import VPreTreatmentAdjustmentDisposablesConfirm 0.1 -import VPreTreatmentSelfTestDry 0.1 -import VPreTreatmentAdjustmentDisposablesPrime 0.1 -import VPreTreatmentDisposablesPrime 0.1 -import VPreTreatmentAdjustmentPatientConnectionBegin 0.1 -import VPreTreatmentAdjustmentUltrafiltrationInit 0.1 -import VPreTreatmentAdjustmentPatientConnectionConfirm 0.1 -import VPreTreatmentAdjustmentStartTreatment 0.1 +import VPreTreatmentAdjustmentInitTreatment 0.1 +import VDGFilterFlush 0.1 +import VPreTreatmentAdjustmentWaterSample 0.1 +import VPreTreatmentAdjustmentConsumablesConfirm 0.1 +import VPreTreatmentSelfTestNoCartridge 0.1 +import VPreTreatmentAdjustmentDisposablesConfirm 0.1 +import VPreTreatmentSelfTestDry 0.1 +import VPreTreatmentAdjustmentDisposablesPrime 0.1 +import VPreTreatmentDisposablesPrime 0.1 +import VPreTreatmentAdjustmentPatientConnectionBegin 0.1 +import VPreTreatmentAdjustmentUltrafiltrationInit 0.1 +import VPreTreatmentAdjustmentPatientConnectionConfirm 0.1 +import VPreTreatmentAdjustmentStartTreatment 0.1 // --- -import VDGDrainPump 0.1 -import VDGHeaters 0.1 -import VDGLoadCellReadings 0.1 -import VDGOperationMode 0.1 -import VDGPressures 0.1 -import VDGROPump 0.1 -import VDGReservoir 0.1 -import VDGTemperatures 0.1 -import VDGValvesStates 0.1 -import VTreatmentCreate 0.1 -import VDGAccelerometer 0.1 +import VDGDrainPump 0.1 +import VDGHeaters 0.1 +import VDGLoadCellReadings 0.1 +import VDGOperationMode 0.1 +import VDGPressures 0.1 +import VDGROPump 0.1 +import VDGReservoir 0.1 +import VDGTemperatures 0.1 +import VDGValvesStates 0.1 +import VTreatmentCreate 0.1 +import VDGAccelerometer 0.1 // In-Treatment - Adjustemnt -import VTreatmentAdjustmentDuration 0.1 -import VTreatmentAdjustmentFlows 0.1 -import VTreatmentAdjustmentUltrafiltrationState 0.1 -import VTreatmentAdjustmentUltrafiltrationEdit 0.1 -import VTreatmentAdjustmentUltrafiltrationConfirm 0.1 -import VTreatmentAdjustmentPressuresLimits 0.1 -import VTreatmentAdjustmentSaline 0.1 -import VTreatmentAdjustmentHeparin 0.1 -import VTreatmentAdjustmentRinseback 0.1 -import VTreatmentAdjustmentRecirculate 0.1 -import VTreatmentAdjustmentEnd 0.1 +import VTreatmentAdjustmentDuration 0.1 +import VTreatmentAdjustmentFlows 0.1 +import VTreatmentAdjustmentUltrafiltrationState 0.1 +import VTreatmentAdjustmentUltrafiltrationEdit 0.1 +import VTreatmentAdjustmentUltrafiltrationConfirm 0.1 +import VTreatmentAdjustmentPressuresLimits 0.1 +import VTreatmentAdjustmentSaline 0.1 +import VTreatmentAdjustmentHeparin 0.1 +import VTreatmentAdjustmentRinseback 0.1 +import VTreatmentAdjustmentRecirculate 0.1 +import VTreatmentAdjustmentEnd 0.1 +// Post-Treatmnt +import VPostTreatmentAdjustmentPatientDisconnectionConfirm 0.1 +import VPostTreatmentAdjustmentDisposablesRemovalConfirm 0.1 +import VPostTreatmentAdjustmentTreatmentLog 0.1 +// Disinfection +import VDisinfectAdjustDisinfect 0.1 +import VDisinfectAdjustChemicalConfirm 0.1 +import VDisinfectDGData 0.1 - // Qml imports import "qrc:/globals" import "qrc:/pages" import "qrc:/pages/treatment" +import "qrc:/pages/settings" import "qrc:/components" import "qrc:/dialogs" @@ -95,66 +123,93 @@ width : Variables.applicationWidth height: Variables.applicationHeight - VSettings { id: vSettings } + VHDPOSTData { id: vHDPOSTData } + VDGPOSTData { id: vDGPOSTData } - VHDOperationMode { id: vHDOperationMode } - VPreTreatmentStates { id: vPreTreatmentStates } - VHDTreatmentStates { id: vHDTreatmentStates } + VDevice { id: vDevice } + VSettings { id: vSettings } + VAdjustmentVersions { id: vAdjustmentVersions } + VAdjustmentService { id: vAdjustmentService } + VDateTime { id: vDateTime } + VNetworkModel { id: vNetwork } + VAdjustmentAlarmVolume { id: vAdjustmentAlarmVolume } + VBluetooth { id: vBluetooth } - VTreatmentBloodFlow { id: vTreatmentBloodFlow } - VTreatmentDialysateFlow { id: vTreatmentDialysateFlow } - VTreatmentPressureOcclusion { id: vTreatmentPressureOcclusion } - VTreatmentUltrafiltration { id: vTreatmentUltrafiltration } - VTreatmentTime { id: vTreatmentTime } - VTreatmentBloodPrime { id: vTreatmentBloodPrime } - VTreatmentRinseback { id: vTreatmentRinseback } - VTreatmentRecirculate { id: vTreatmentRecirculate } - VHDAccelerometer { id: vHDAccelerometer } + // ---- States + VHDOperationMode { id: vHDOperationMode } + VPreTreatmentStates { id: vPreTreatmentStates } + VHDTreatmentStates { id: vHDTreatmentStates } + VPostTreatmentStates { id: vPostTreatmentStates } + VDisinfectStates { id: vDisinfectStates } + + VTreatmentBloodFlow { id: vTreatmentBloodFlow } + VTreatmentVitals { id: vTreatmentVitals + interval : vTreatmentCreate.bloodPressureMeasureInterval + } + + VTreatmentDialysateFlow { id: vTreatmentDialysateFlow } + VTreatmentPressureOcclusion { id: vTreatmentPressureOcclusion } + VTreatmentUltrafiltration { id: vTreatmentUltrafiltration } + VTreatmentTime { id: vTreatmentTime } + VTreatmentBloodPrime { id: vTreatmentBloodPrime } + VTreatmentRinseback { id: vTreatmentRinseback } + VTreatmentRecirculate { id: vTreatmentRecirculate } + VTreatmentStop { id: vTreatmentStop } + VHDAccelerometer { id: vHDAccelerometer } + VHDSyringePump { id: vHDSyringePump } // ---- DG - VDGDrainPump { id: vDGDrainPump } - VDGHeaters { id: vDGHeaters } - VDGLoadCellReadings { id: vDGLoadCellReadings } - VDGOperationMode { id: vDGOperationMode } - VDGPressures { id: vDGPressures } - VDGROPump { id: vDGROPump } - VDGReservoir { id: vDGReservoir } - VDGTemperatures { id: vDGTemperatures } - VDGValvesStates { id: vDGValvesStates } - VDGAccelerometer { id: vDGAccelerometer } + VDGDrainPump { id: vDGDrainPump } + VDGHeaters { id: vDGHeaters } + VDGLoadCellReadings { id: vDGLoadCellReadings } + VDGOperationMode { id: vDGOperationMode } + VDGPressures { id: vDGPressures } + VDGROPump { id: vDGROPump } + VDGReservoir { id: vDGReservoir } + VDGTemperatures { id: vDGTemperatures } + VDGValvesStates { id: vDGValvesStates } + VDGAccelerometer { id: vDGAccelerometer } // --- Pre-Treatment Progress Data - VPreTreatmentAdjustmentInitTreatment { id: vPreTreatmentAdjustmentInitTreatment } - VDGFilterFlush { id: vDGFilterFlush } - VPreTreatmentAdjustmentWaterSample { id: vPreTreatmentAdjustmentWaterSample } - VPreTreatmentAdjustmentConsumablesConfirm { id: vPreTreatmentAdjustmentConsumablesConfirm } - VPreTreatmentSelfTestNoCartridge { id: vPreTreatmentSelfTestNoCartridge } - VPreTreatmentAdjustmentDisposablesConfirm { id: vPreTreatmentAdjustmentDisposablesConfirm } - VPreTreatmentSelfTestDry { id: vPreTreatmentSelfTestDry } - VPreTreatmentAdjustmentDisposablesPrime { id: vPreTreatmentAdjustmentDisposablesPrime } - VPreTreatmentDisposablesPrime { id: vPreTreatmentDisposablesPrime } - VPreTreatmentAdjustmentPatientConnectionBegin { id: vPreTreatmentAdjustmentPatientConnectionBegin } - VPreTreatmentAdjustmentUltrafiltrationInit { id: vPreTreatmentAdjustmentUltrafiltrationInit } - VPreTreatmentAdjustmentPatientConnectionConfirm { id: vPreTreatmentAdjustmentPatientConnectionConfirm } - VPreTreatmentAdjustmentStartTreatment { id: vPreTreatmentAdjustmentStartTreatment } + VPreTreatmentAdjustmentInitTreatment { id: vPreTreatmentAdjustmentInitTreatment } + VDGFilterFlush { id: vDGFilterFlush } + VPreTreatmentAdjustmentWaterSample { id: vPreTreatmentAdjustmentWaterSample } + VPreTreatmentAdjustmentConsumablesConfirm { id: vPreTreatmentAdjustmentConsumablesConfirm } + VPreTreatmentSelfTestNoCartridge { id: vPreTreatmentSelfTestNoCartridge } + VPreTreatmentAdjustmentDisposablesConfirm { id: vPreTreatmentAdjustmentDisposablesConfirm } + VPreTreatmentSelfTestDry { id: vPreTreatmentSelfTestDry } + VPreTreatmentAdjustmentDisposablesPrime { id: vPreTreatmentAdjustmentDisposablesPrime } + VPreTreatmentDisposablesPrime { id: vPreTreatmentDisposablesPrime } + VPreTreatmentAdjustmentPatientConnectionBegin { id: vPreTreatmentAdjustmentPatientConnectionBegin } + VPreTreatmentAdjustmentUltrafiltrationInit { id: vPreTreatmentAdjustmentUltrafiltrationInit } + VPreTreatmentAdjustmentPatientConnectionConfirm { id: vPreTreatmentAdjustmentPatientConnectionConfirm } + VPreTreatmentAdjustmentStartTreatment { id: vPreTreatmentAdjustmentStartTreatment } // --- - VTreatmentAdjustmentDuration { id: vTreatmentAdjustmentDuration } - VTreatmentAdjustmentFlows { id: vTreatmentAdjustmentFlows } - VTreatmentCreate { id: vTreatmentCreate } + VTreatmentAdjustmentDuration { id: vTreatmentAdjustmentDuration } + VTreatmentAdjustmentFlows { id: vTreatmentAdjustmentFlows } + VTreatmentCreate { id: vTreatmentCreate } + VTreatmentRanges { id: vTreatmentRanges } + VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline } + VTreatmentAdjustmentUltrafiltrationState { id: vTreatmentAdjustmentUltrafiltrationState } + VTreatmentAdjustmentUltrafiltrationEdit { id: vTreatmentAdjustmentUltrafiltrationEdit } + VTreatmentAdjustmentUltrafiltrationConfirm { id: vTreatmentAdjustmentUltrafiltrationConfirm } + VTreatmentAdjustmentPressuresLimits { id: vTreatmentAdjustmentPressuresLimits } + VTreatmentAdjustmentHeparin { id: vTreatmentAdjustmentHeparin } + VTreatmentAdjustmentRinseback { id: vTreatmentAdjustmentRinseback } + VTreatmentAdjustmentRecirculate { id: vTreatmentAdjustmentRecirculate } + VTreatmentAdjustmentEnd { id: vTreatmentAdjustmentEnd } - VTreatmentRanges { id: vTreatmentRanges } - VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline } - VTreatmentAdjustmentUltrafiltrationState { id: vTreatmentAdjustmentUltrafiltrationState } - VTreatmentAdjustmentUltrafiltrationEdit { id: vTreatmentAdjustmentUltrafiltrationEdit } - VTreatmentAdjustmentUltrafiltrationConfirm { id: vTreatmentAdjustmentUltrafiltrationConfirm } - VTreatmentAdjustmentPressuresLimits { id: vTreatmentAdjustmentPressuresLimits } - VTreatmentAdjustmentHeparin { id: vTreatmentAdjustmentHeparin } - VTreatmentAdjustmentRinseback { id: vTreatmentAdjustmentRinseback } - VTreatmentAdjustmentRecirculate { id: vTreatmentAdjustmentRecirculate } - VTreatmentAdjustmentEnd { id: vTreatmentAdjustmentEnd } - VTreatmentAdjustmentVersions { id: vTreatmentAdjustmentVersions } + // --- Post Treatment + VPostTreatmentAdjustmentPatientDisconnectionConfirm { id: vPostTreatmentAdjustmentPatientDisconnectionConfirm } + VPostTreatmentAdjustmentDisposablesRemovalConfirm { id: vPostTreatmentAdjustmentDisposablesRemovalConfirm } + VPostTreatmentAdjustmentTreatmentLog { id: vPostTreatmentAdjustmentTreatmentLog } + // --- Disinfection + VDisinfectAdjustDisinfect { id: vDisinfectAdjustDisinfect } + VDisinfectAdjustChemicalConfirm { id: vDisinfectAdjustChemicalConfirm } + VDisinfectDGData { id: vDisinfectDGData } + Background {} GuiView { id: _GuiView } @@ -170,6 +225,7 @@ // 3 - Footer MainMenu { id: _mainMenu + hidden: true // it should be hidden by default since the landing screen changed to init and it does not have the main menu untill the POST passes. titles: [ qsTr("Treatment") , qsTr("Manager") , qsTr("Settings") ] Component.onCompleted: { _settingsStack.visible = false @@ -178,9 +234,9 @@ } onItemPressed: { - _mainStack .visible = vIndex == 0; - _managerStack .visible = vIndex == 1; - _settingsStack .visible = vIndex == 2; + _mainStack .visible = vIndex == 0 + _managerStack .visible = vIndex == 1 + _settingsStack.visible = vIndex == 2 } } @@ -201,35 +257,64 @@ font.pixelSize: 14 } - Rectangle { // TEST : SD-Card not present should be handled with better indication(s). - color : ! _GuiView.sdIsReady ? "red" : _GuiView.sdIsReadOnly ? "gray" : "green" + Text { // TEST : Ethernet IP + color : Colors.textMain anchors { top : parent.top - right : parent.right - topMargin : 5 - rightMargin : 5 + left : parent.left + leftMargin : 450 } - width : 25 - height: 25 - radius: width - Image { id: _imageMicrosd - anchors.fill: parent - source: "qrc:/images/iMicroSD" + horizontalAlignment : Text.Alignleft + verticalAlignment : Text.AlignBottom + + height : 15 + text : vNetwork.ethernetIP + font.pixelSize: 14 + } + + Text { // TEST : Current Date/Time + color : Colors.textMain + anchors { + top : parent.top + left : parent.left + leftMargin : 1000 } - visible: true + horizontalAlignment : Text.Alignleft + verticalAlignment : Text.AlignBottom + + height : 15 + text : vDateTime.current + font.pixelSize: 14 } - PowerItem { id: _powerItem } - AlarmItem { id: _alarmItem } + SDItem { id: _sdItem + // TODO: disable this later. this is only for diagnostic purpose. + onDoubleClicked : { + _diagnosticsDialog.open() + } + } + // keyboard should always be before AlarmItem to not to covet it. + VirtualKeyboard { id: _keyboard } + + // AlarmItem should always be at the end so nothing covers it + AlarmItem { id: _alarmItem ; z: 997 } + + // PowerOff screen should still be avilable. Even if the Alarm happens the Power option should be available. + PowerItem { id: _powerItem ; z: 998 } + + // this dialog as an exception can cover the Alarm for debugging and testing. + DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } + // NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem // then cannot be anchored. - NotificationBar { id: _alarmBar - anchors.bottom : _mainMenu.top - backgroundColor : _alarmItem.backgroundColor - textColor : _alarmItem.textColor - text : _alarmItem.text - isSilenced : _alarmItem.isSilenced - timeout : _alarmItem.timeout + NotificationBar { id: _alarmBar + anchors.bottom : _mainMenu.top + backgroundColor : _alarmItem.backgroundColor + textColor : _alarmItem.textColor + text : _alarmItem.text + isSilenced : _alarmItem.isSilenced + timeout : _alarmItem.timeout + backgroundFading : vHDOperationMode.fault } }