Index: SDDs/MainTreatmentScreen.puml
===================================================================
diff -u -rbc317eeeafae0f186fdfcc31e3960343d5c3053a -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- SDDs/MainTreatmentScreen.puml (.../MainTreatmentScreen.puml) (revision bc317eeeafae0f186fdfcc31e3960343d5c3053a)
+++ SDDs/MainTreatmentScreen.puml (.../MainTreatmentScreen.puml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -29,9 +29,8 @@
== Tx Parameter set points ==
TD -> SW: MSG: [x4F: #3] \nTD treatment Set Points Data\n(U32) bloodFlow\n(U32) dialFlow\n(F32) dialTemp
SW -> UI: CMD: Update TX Set Points Data:\n(U32) bloodFlow\n(U32) dialFlow\n(F32) dialTemp
- == Saline ==
- TD -> SW: MSG: [x3D: #4] \nTD Saline Bolus Status Data\n(U32) ntgtVolMl\n(F32) cumVolMl\n(F32) bolVolMl\n(U32) sbState
- SW -> UI: CMD: Update Saline Bolus Data\n(U32) ntgtVolMl\n(F32) cumVolMl\n(F32) bolVolMl\n(U32) sbState
+ !include common_puml/Saline_Bolus_Data.puml
+ !include common_puml/Vitals_Data.puml
== Ultrafiltration ==
TD -> SW: MSG: [x3E: #4] \nTD Ultrafiltration Status Data\n(F32) setVolL\n(F32) tgtRateLHr\n(F32) volDelL\n(U32) ufState
SW -> UI: CMD: Update UF Status\n(F32) setVolL\n(F32) tgtRateLHr\n(F32) volDelL\n(U32) ufState
Index: leahi.pro
===================================================================
diff -u -rc7767b9f771f798feb3167c47d27e36b247bb858 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- leahi.pro (.../leahi.pro) (revision c7767b9f771f798feb3167c47d27e36b247bb858)
+++ leahi.pro (.../leahi.pro) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -68,6 +68,10 @@
sources/model/dd/data \
sources/model/dd/adjustment \
sources/model/dd/adjustment/settings \
+ sources/model/fp \
+ sources/model/fp/data \
+ sources/model/fp/adjustment \
+ sources/model/fp/adjustment/settings \
sources/view \
sources/view/td \
sources/view/td/data \
@@ -77,6 +81,8 @@
sources/view/dd/data \
sources/view/confirm \
sources/view/settings \
+ sources/view/fp \
+ sources/view/fp/data \
\
sources/gui \
sources/utility \
@@ -130,6 +136,7 @@
common/AlarmDefs.h \
common/Compatible.h \
common/DDDefs.h \
+ common/FPDefs.h \
common/TDDefs.h \
common/MsgDefs.h \
\ # Main
@@ -155,9 +162,19 @@
sources/model/dd/data/MDDPressuresData.h \
sources/model/dd/data/MDDTemperaturesData.h \
sources/model/dd/data/MDDValvesStatesData.h \
+ sources/model/fp/adjustment/settings/MAdjustFPVersionsResponse.h \
+ sources/model/fp/data/MFPBoostPumpData.h \
+ sources/model/fp/data/MFPConductivityData.h \
+ sources/model/fp/data/MFPFlowData.h \
+ sources/model/fp/data/MFPLevelData.h \
+ sources/model/fp/data/MFPPressuresData.h \
+ sources/model/fp/data/MFPROPumpData.h \
+ sources/model/fp/data/MFPTemperatureData.h \
+ sources/model/fp/data/MFPValvesStatesData.h \
sources/model/td/adjustment/settings/MAdjustTDSerialNumberResponse.h \
sources/model/td/adjustment/settings/MAdjustTDVersionsRequest.h \
sources/model/td/adjustment/settings/MAdjustTDVersionsResponse.h \
+ sources/model/td/adjustment/treatment/MTreatmentAdjustVitalsResponse.h \
sources/model/td/data/MTDAirBubbleData.h \
sources/model/td/data/MTDAirPumpData.h \
sources/model/td/data/MTDAirTrapData.h \
@@ -174,6 +191,7 @@
sources/model/td/data/treatment/MTreatmentStatesData.h \
sources/model/td/data/treatment/MTreatmentTimeData.h \
sources/model/td/data/treatment/MTreatmentUltrafiltrationData.h \
+ sources/model/td/data/treatment/MTreatmentVitalsData.h \
sources/storage/Settings.h \
sources/storage/TreatmentLog.h \
sources/bluetooth/BluetoothInterface.h \
@@ -182,6 +200,7 @@
sources/model/MModel.h \
sources/model/MAbstract.h \
sources/model/MAbstractDynamic.h \
+ sources/model/MListModel.h \
sources/device/DeviceModels.h \
\ # ---------- Models - TD - Data //// ----- @LEAHIZED
sources/model/td/data/MTDOpModeData.h \
@@ -200,13 +219,26 @@
sources/view/dd/data/VDDPressuresData.h \
sources/view/dd/data/VDDTemperaturesData.h \
sources/view/dd/data/VDDValvesStatesData.h \
+ sources/view/fp/data/VFPBoostPumpData.h \
+ sources/view/fp/data/VFPConductivityData.h \
+ sources/view/fp/data/VFPFlowData.h \
+ sources/view/fp/data/VFPLevelData.h \
+ sources/view/fp/data/VFPPressuresData.h \
+ sources/view/fp/data/VFPROPumpData.h \
+ sources/view/fp/data/VFPTemperatureData.h \
+ sources/view/fp/data/VFPValvesStatesData.h \
sources/view/hd/data/VTreatmentRanges.h \
sources/view/td/data/VTDAirBubbleData.h \
sources/view/td/data/VTDAirPumpData.h \
sources/view/td/data/VTDAirTrapData.h \
sources/view/td/data/VTDBatteryData.h \
sources/view/td/data/VTDEjectorData.h \
sources/view/td/data/VTDOpModeData.h \
+ \ # ---------- Views - TD - Adjustment - In-Treatment
+ sources/view/td/adjustment/treatment/VTreatmentAdjustmentSaline.h \
+ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.h \
+ \ # ---------- Models - TD - Adjustment - In-Treatment
+ sources/model/td/adjustment/treatment/MTreatmentAdjustSalineResponse.h \
\ # ---------- Models - confirm
sources/model/confirm/MDuetConfirmHDi.h \
\ # ---------- Models - POST
@@ -255,7 +287,6 @@
sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h \
sources/model/hd/adjustment/treatment/MTreatmentAdjustDurationResponse.h \
sources/model/hd/adjustment/treatment/MTreatmentAdjustBloodDialysateResponse.h \
- sources/model/hd/adjustment/treatment/MTreatmentAdjustSalineResponse.h \
sources/model/hd/adjustment/treatment/MTreatmentAdjustHeparinResponse.h \
sources/model/hd/adjustment/treatment/MTreatmentAdjustPressuresLimitsResponse.h \
\ # ---------- Models - HD - Adjustment - End-Treatment
@@ -374,7 +405,6 @@
\ # ---------- Views - HD - Adjustment - In-Treatment
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentDuration.h \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentFlows.h \
- sources/view/hd/adjustment/treatment/VTreatmentAdjustmentSaline.h \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentHeparin.h \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentPressuresLimits.h \
\ # ---------- Views - HD - Adjustment - End-Treatment
@@ -462,9 +492,19 @@
sources/model/dd/data/MDDPressuresData.cpp \
sources/model/dd/data/MDDTemperaturesData.cpp \
sources/model/dd/data/MDDValvesStatesData.cpp \
+ sources/model/fp/adjustment/settings/MAdjustFPVersionsResponse.cpp \
+ sources/model/fp/data/MFPBoostPumpData.cpp \
+ sources/model/fp/data/MFPConductivityData.cpp \
+ sources/model/fp/data/MFPFlowData.cpp \
+ sources/model/fp/data/MFPLevelData.cpp \
+ sources/model/fp/data/MFPPressuresData.cpp \
+ sources/model/fp/data/MFPROPumpData.cpp \
+ sources/model/fp/data/MFPTemperatureData.cpp \
+ sources/model/fp/data/MFPValvesStatesData.cpp \
sources/model/td/adjustment/settings/MAdjustTDSerialNumberResponse.cpp \
sources/model/td/adjustment/settings/MAdjustTDVersionsRequest.cpp \
sources/model/td/adjustment/settings/MAdjustTDVersionsResponse.cpp \
+ sources/model/td/adjustment/treatment/MTreatmentAdjustVitalsResponse.cpp \
sources/model/td/data/MTDAirBubbleData.cpp \
sources/model/td/data/MTDAirPumpData.cpp \
sources/model/td/data/MTDAirTrapData.cpp \
@@ -481,6 +521,7 @@
sources/model/td/data/treatment/MTreatmentStatesData.cpp \
sources/model/td/data/treatment/MTreatmentTimeData.cpp \
sources/model/td/data/treatment/MTreatmentUltrafiltrationData.cpp \
+ sources/model/td/data/treatment/MTreatmentVitalsData.cpp \
sources/model/ui/data/MUIBloodPressureData.cpp \
sources/storage/Settings.cpp \
sources/storage/TreatmentLog.cpp \
@@ -494,12 +535,21 @@
sources/view/dd/data/VDDPressuresData.cpp \
sources/view/dd/data/VDDTemperaturesData.cpp \
sources/view/dd/data/VDDValvesStatesData.cpp \
+ sources/view/fp/data/VFPBoostPumpData.cpp \
+ sources/view/fp/data/VFPConductivityData.cpp \
+ sources/view/fp/data/VFPFlowData.cpp \
+ sources/view/fp/data/VFPLevelData.cpp \
+ sources/view/fp/data/VFPPressuresData.cpp \
+ sources/view/fp/data/VFPROPumpData.cpp \
+ sources/view/fp/data/VFPTemperatureData.cpp \
+ sources/view/fp/data/VFPValvesStatesData.cpp \
sources/view/hd/data/post/VHDPOSTData.cpp \
sources/bluetooth/BluetoothInterface.cpp \
sources/cloudsync/CloudSyncController.cpp \
\ # ---------- Models ----------
sources/model/MAbstract.cpp \
sources/model/MAbstractDynamic.cpp \
+ sources/model/MListModel.cpp \
sources/device/DeviceModels.cpp \
\ # ---------- Models - TD - Data - States
sources/model/td/data/MTDOpModeData.cpp \
@@ -532,6 +582,8 @@
\ # ---------- Models - Data - States
sources/model/hd/data/pretreatment/MPreTreatmentStatesData.cpp \
sources/model/hd/data/posttreatment/MPostTreatmentStatesData.cpp \
+ \ # ---------- Models - TD - Adjustment - In-Treatment
+ sources/model/td/adjustment/treatment/MTreatmentAdjustSalineResponse.cpp \
\ # ---------- Models - HD - Adjustment
sources/model/hd/adjustment/MAdjustPowerOff.cpp \
\ # ---------- Models - HD - Adjustment - Settings
@@ -550,7 +602,6 @@
\ # ---------- Models - HD - Adjustment - In-Treatment
sources/model/hd/adjustment/treatment/MTreatmentAdjustDurationResponse.cpp \
sources/model/hd/adjustment/treatment/MTreatmentAdjustBloodDialysateResponse.cpp \
- sources/model/hd/adjustment/treatment/MTreatmentAdjustSalineResponse.cpp \
sources/model/hd/adjustment/treatment/MTreatmentAdjustHeparinResponse.cpp \
sources/model/hd/adjustment/treatment/MTreatmentAdjustPressuresLimitsResponse.cpp \
\ # ---------- Models - HD - Adjustment - End-Treatment
@@ -629,6 +680,8 @@
sources/view/td/data/VTDEjectorData.cpp \
sources/view/td/data/VTDOpModeData.cpp \
\ # ---------- Views - TD - Adjustment - In-Treatment
+ sources/view/td/adjustment/treatment/VTreatmentAdjustmentSaline.cpp \
+ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.cpp \
sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationState.cpp \
sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.cpp \
sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationConfirm.cpp \
@@ -670,7 +723,6 @@
\ # ---------- Views - HD - Adjustment - In-Treatment
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentDuration.cpp \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentFlows.cpp \
- sources/view/hd/adjustment/treatment/VTreatmentAdjustmentSaline.cpp \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentHeparin.cpp \
sources/view/hd/adjustment/treatment/VTreatmentAdjustmentPressuresLimits.cpp \
\ # ---------- Views - HD - Adjustment - End-Treatment
Index: leahi.qrc
===================================================================
diff -u -reaa02e45b2d5f0910309bea7165963a539f9db97 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- leahi.qrc (.../leahi.qrc) (revision eaa02e45b2d5f0910309bea7165963a539f9db97)
+++ leahi.qrc (.../leahi.qrc) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -34,21 +34,29 @@
sources/gui/qml/dialogs/NotificationDialog.qml
sources/gui/qml/dialogs/AlarmListDialog.qml
sources/gui/qml/dialogs/LockDialog.qml
+ sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml
sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml
sources/gui/qml/dialogs/diagnostics/DiagnosticsBase.qml
sources/gui/qml/dialogs/diagnostics/DiagnosticsSwipe.qml
sources/gui/qml/dialogs/diagnostics/DiagnosticsTD.qml
sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml
+ sources/gui/qml/dialogs/diagnostics/DiagnosticsFP.qml
+
+ sources/gui/qml/dialogs/headerbar/HeaderbarWiFi.qml
+ sources/gui/qml/dialogs/headerbar/HeaderbarStorage.qml
+ sources/gui/qml/dialogs/headerbar/HeaderbarSettings.qml
+ sources/gui/qml/dialogs/headerbar/HeaderbarPrescription.qml
+ sources/gui/qml/dialogs/headerbar/HeaderbarInformation.qml
+
resources/images/Logo d.png
resources/images/Logo DialityT.png
resources/images/diality-splash.png
resources/images/ArrowRight.png
resources/images/ArrowLeft.png
- resources/images/logo d Dark Transparent.png
resources/images/Close.png
resources/images/bell-on.png
resources/images/bell-off.png
@@ -86,10 +94,16 @@
resources/images/PauseOrange.png
resources/images/arrowsExpanding.png
resources/images/HomeBackground.png
- resources/images/Bluetooth.png
resources/images/CloudSync.png
resources/images/Information.png
resources/images/Storage.png
+ resources/images/help.png
+ resources/images/Menu_Dot.png
+ resources/images/ArrowLeftDisabled.png
+ resources/images/ArrowRightDisabled.png
+ resources/images/backspace.png
+ resources/images/Vitals.png
+ resources/images/Vitals_Red.png
sources/gui/qml/components/MainMenu.qml
@@ -119,10 +133,6 @@
sources/gui/qml/components/TimeText.qml
sources/gui/qml/components/ProgressCircle.qml
sources/gui/qml/components/Slider.qml
- sources/gui/qml/components/SliderCreateTreatment.qml
- sources/gui/qml/components/ConfirmTreatmentTable.qml
- sources/gui/qml/components/ConfirmTreatmentSubTable.qml
- sources/gui/qml/components/GridSelection.qml
sources/gui/qml/components/ProgressBarEx.qml
sources/gui/qml/components/CloseButton.qml
sources/gui/qml/components/ConfirmButton.qml
@@ -132,29 +142,28 @@
sources/gui/qml/components/UltrafiltrationButton.qml
sources/gui/qml/components/ImageWave.qml
sources/gui/qml/components/ImageClock.qml
- sources/gui/qml/components/ImageLogoDDarkTransparent.qml
- sources/gui/qml/components/ConfirmTreatmentTableEntry.qml
sources/gui/qml/components/DebugDataColumn.qml
sources/gui/qml/components/RangeSlider.qml
sources/gui/qml/components/MuteButton.qml
- sources/gui/qml/components/UpDownButton.qml
sources/gui/qml/components/ImageText.qml
sources/gui/qml/components/WaitDone.qml
sources/gui/qml/components/TimeCircle.qml
sources/gui/qml/components/Footer.qml
sources/gui/qml/components/TextEntry.qml
sources/gui/qml/components/ScrollBar.qml
- sources/gui/qml/compounds/Fader.qml
sources/gui/qml/components/FooterStatic.qml
sources/gui/qml/components/TimeEntry.qml
sources/gui/qml/components/Label.qml
- sources/gui/qml/components/EntryDialog.qml
sources/gui/qml/components/SliderArrows.qml
sources/gui/qml/components/QRCode.qml
sources/gui/qml/components/ContentArea.qml
sources/gui/qml/components/LabelValue.qml
sources/gui/qml/components/ArrowButton.qml
sources/gui/qml/components/HeaderBar.qml
+ sources/gui/qml/components/HeaderBarPopup.qml
+ sources/gui/qml/components/AlarmButtonRow.qml
+ sources/gui/qml/components/BaseComboBox.qml
+ sources/gui/qml/components/VitalsButton.qml
sources/gui/qml/compounds/PressureRangeSlider.qml
@@ -163,6 +172,9 @@
sources/gui/qml/compounds/CheckListView.qml
sources/gui/qml/compounds/TouchGrid.qml
sources/gui/qml/compounds/BPHREntry.qml
+ sources/gui/qml/compounds/NumPad.qml
+ sources/gui/qml/compounds/LabelUnitContainer.qml
+ sources/gui/qml/compounds/ValueAdjuster.qml
sources/gui/qml/compounds/StoppedSlider.qml
sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml
@@ -227,9 +239,9 @@
sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml
- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml
sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml
- sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml
+ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml
+ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml
sources/gui/qml/pages/pretreatment/connection/PreTreatmentUltrafiltration.qml
@@ -263,6 +275,8 @@
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml
sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml
+ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml
sources/gui/qml/pages/endtreatment/EndTreatmentRinsebackStack.qml
Index: sources/canbus/MessageDispatcher.cpp
===================================================================
diff -u -rc1d0546e2d1a51ff919b2172ce647003359f0853 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision c1d0546e2d1a51ff919b2172ce647003359f0853)
+++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -286,7 +286,6 @@
{
QVariantList mData;
mData += vData.volume;
- mData += vData.option;
onActionTransmit(GuiActionType::ID_AdjustUltrafiltrationConfirmReq, mData);
}
Index: sources/canbus/MessageGlobals.h
===================================================================
diff -u -r1ea05b21849b7ee431804166f8e206f623c39509 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 1ea05b21849b7ee431804166f8e206f623c39509)
+++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -77,6 +77,7 @@
{Gui::GuiActionType::ID_DialysateOutletFlow , 13 * 4 }, //13 parameters each 4bytes
{Gui::GuiActionType::ID_PressureOcclusion , 12 * 4 }, //12 parameters each 4bytes
{Gui::GuiActionType::ID_Saline , 4 * 4 }, // 4 parameters each 4bytes
+ {Gui::GuiActionType::ID_Vitals , 3 * 4 }, // 3 parameters each 4bytes
{Gui::GuiActionType::ID_Ultrafiltration , 4 * 4 }, // 4 parameters each 4bytes
{Gui::GuiActionType::ID_Heparin , 2 * 4 }, // 2 parameters each 4bytes
{Gui::GuiActionType::ID_Rinseback , 6 * 4 }, // 6 parameters each 4bytes
@@ -111,6 +112,15 @@
{Gui::GuiActionType::ID_DDLevelData , 3 * 4 }, // 3 parameters each 4bytes
{Gui::GuiActionType::ID_DDGenDialysateData , 9 * 4 }, // 9 parameters each 4bytes
{Gui::GuiActionType::ID_DDBloodLeakData , 1 * 4 }, // 1 parameters each 4bytes
+ //FP Data Messages
+ {Gui::GuiActionType::ID_FPValvesStatesData , 2 * 1 + 10 }, // 1 parameter 16bits & 10 parameters each 1 byte
+ {Gui::GuiActionType::ID_FPROPumpData , 9 * 4 }, // 9 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPPressuresData , 9 * 4 }, // 9 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPLevelData , 1 * 4 }, // 1 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPFlowSensorData , 4 * 4 }, // 4 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPConductivityData , 2 * 4 }, // 2 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPTemperaturesData , 13 * 4 }, // 13 parameters each 4bytes
+ {Gui::GuiActionType::ID_FPROBoosterPumpData , 9 * 4 }, // 9 parameters each 4bytes
// HD Data Messages
{Gui::GuiActionType::ID_HDAccelerometerData , 9 * 4 }, // 9 parameters each 4bytes
{Gui::GuiActionType::ID_HDSyringePumpData , 9 * 4 }, // 9 parameters each 4bytes
@@ -208,6 +218,10 @@
{Gui::GuiActionType::ID_AdjustSalineRsp , 3 * 4 }, // 3 parameters each 4bytes
// ----
+ {Gui::GuiActionType::ID_AdjustVitalsReq , 0 * 4 }, // 0 parameter each 4bytes
+ {Gui::GuiActionType::ID_AdjustVitalsRsp , 2 * 4 }, // 2 parameters each 4bytes
+
+ // ----
{Gui::GuiActionType::ID_AdjustHeparinReq , 1 * 4 }, // 1 parameter each 4bytes
{Gui::GuiActionType::ID_AdjustHeparinRsp , 2 * 4 }, // 3 parameters each 4bytes
@@ -244,6 +258,7 @@
{Gui::GuiActionType::ID_AdjustVersionsUIReq ,1+1+1+2+4 }, // variable length parameters
{Gui::GuiActionType::ID_AdjustVersionsTDRsp ,3*1+2+4*1+4 }, // variable length parameters
{Gui::GuiActionType::ID_AdjustVersionsDDRsp ,3*1+2+4*1+4 }, // variable length parameters
+ {Gui::GuiActionType::ID_AdjustVersionsFPRsp ,3*1+2+4*1+4 }, // variable length parameters
{Gui::GuiActionType::ID_AdjustSerialTDRsp , 1 * 1 }, // minimum 1 parameter 1 byte
{Gui::GuiActionType::ID_AdjustSerialDDRsp , 1 * 1 }, // minimum 1 parameter 1 byte
// ----
@@ -354,6 +369,7 @@
// UI listens occasionally
eChlid_DD_UI = eChlid_DD_Sync , ///< DD => UI
+ eChlid_FP_UI = eChlid_FP_Sync , ///< FP => UI
eChlid_UI_DD = eChlid_UI_Sync , ///< UI => DD [Out]
// Dialing channel has been requested by V&V team for CANBus testing
Index: sources/gui/GuiGlobals.h
===================================================================
diff -u -r857ba6276d20d39763fb7d291891270e87035481 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 857ba6276d20d39763fb7d291891270e87035481)
+++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -100,6 +100,7 @@
ID_AdjustVersionsTDReq = 0x1500, // 21 // ID_TDVersionsRxq - TD Version request received //// ----- @LEAHIZED
ID_AdjustVersionsTDRsp = 0x0E00, // 14 //// ----- @LEAHIZED
ID_AdjustVersionsDDRsp = 0x0F00, // 15 //// ----- @LEAHIZED
+ ID_AdjustVersionsFPRsp = 0x5A00, // 90 //// ----- @LEAHIZED
ID_AdjustSerialTDRsp = 0x5100, // 81 //// ----- @LEAHIZED
ID_AdjustSerialDDRsp = 0x5200, // 82 //// ----- @LEAHIZED
@@ -140,6 +141,7 @@
ID_Recirculate = 0x5A00, // 90
ID_BloodPrime = 0x5900, // 89
ID_TreatmentStop = 0x4900, // 73
+ ID_Vitals = 0x6500, // 101
// Alarm Messages
ID_AlarmStatus = 0x0100, // 01 //// ----- @LEAHIZED
@@ -164,7 +166,7 @@
ID_DGFilterFlushData = 0x600F, // ?? //// ----- @CRAPIZED: had to change to avoid duplication
ID_AdjustWaterSampleReq = 0x5D00, // 93
ID_AdjustWaterSampleRsp = 0x5E00, // 94
- ID_AdjustWaterSampleResultReq = 0x5F00, // 95 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response
+ ID_AdjustWaterSampleResultReq = 0x5F0F, // 95 //// ----- @CRAPIZED: had to change to avoid duplication
// Pre-Treatment Consumables Installation Confirm
ID_AdjustConsumablesConfirmReq = 0x6800, // 104 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response
// Pre-Treatment SelfTest NoCartridge Progress Data
@@ -173,14 +175,14 @@
ID_AdjustDisposablesConfirmReq = 0x6200, // 98 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response
ID_AdjustDisposablesConfirmRsp = 0xAD00, // 173 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response
// Pre-Treatment SelfTest Dry Progress Data
- ID_SelfTestDryData = 0x6300, // 99
+ ID_SelfTestDryData = 0x630F, // 99 //// ----- @CRAPIZED: had to change to avoid duplication
// Pre-Treatment Disposable Priming
ID_AdjustDisposablesPrimeReq = 0x3C0F, // 60 //// ----- @CRAPIZED: had to change to avoid duplication
ID_AdjustDisposablesPrimeRsp = 0x3D0F, // 61 //// ----- @CRAPIZED: had to change to avoid duplication
ID_DisposablesPrimeData = 0x43FF, // ?? //// ----- @CRAPIZED - FFed
// Pre-Treatment Patient Connection Begin
- ID_AdjustPatientConnectionBeginReq = 0x6400, // 100
- ID_AdjustPatientConnectionBeginRsp = 0x6500, // 101
+ ID_AdjustPatientConnectionBeginReq = 0x640F, // 100 //// ----- @CRAPIZED: had to change to avoid duplication
+ ID_AdjustPatientConnectionBeginRsp = 0x650F, // 101 //// ----- @CRAPIZED: had to change to avoid duplication
// Pre-Treatment Ultrafiltration initial volume
ID_AdjustUltrafiltrationInitReq = 0x4F0F, // 79 //// ----- @CRAPIZED: had to change to avoid duplication
ID_AdjustUltrafiltrationInitRsp = 0x5000, // 80
@@ -209,6 +211,16 @@
ID_DDGenDialysateData = 0x2F00, // 47 //// ----- @LEAHIZED
ID_DDBloodLeakData = 0x6000, // 96 //// ----- TODO: Payload subject to change given FW implementation
+ // FP Data Messages
+ ID_FPValvesStatesData = 0x3100, // 49 //// ----- @LEAHIZED
+ ID_FPROPumpData = 0x3200, // 50 //// ----- @LEAHIZED
+ ID_FPPressuresData = 0x3400, // 52 //// ----- @LEAHIZED
+ ID_FPLevelData = 0x3500, // 53 //// ----- @LEAHIZED
+ ID_FPFlowSensorData = 0x3600, // 54 //// ----- @LEAHIZED
+ ID_FPConductivityData = 0x3700, // 55 //// ----- @LEAHIZED
+ ID_FPTemperaturesData = 0x3900, // 57 //// ----- @LEAHIZED
+ ID_FPROBoosterPumpData = 0x5000, // 80 //// ----- @LEAHIZED
+
// HD Data Messages
ID_HDAccelerometerData = 0x3300, // 51
ID_HDSyringePumpData = 0x6900, // 105
@@ -234,9 +246,12 @@
ID_AdjustPressuresLimitsReq = 0x470F, // 70 //// ----- @CRAPIZED: had to change to avoid duplication
ID_AdjustPressuresLimitsRsp = 0x480F, // 71 //// ----- @CRAPIZED: had to change to avoid duplication
- ID_AdjustSalineReq = 0x1200, // 18
- ID_AdjustSalineRsp = 0x1400, // 20
+ ID_AdjustSalineReq = 0x5F00, // 95
+ ID_AdjustSalineRsp = 0x6000, // 96
+ ID_AdjustVitalsReq = 0x6300, // 99
+ ID_AdjustVitalsRsp = 0x6400, // 100
+
ID_AdjustHeparinReq = 0x4B00, // 75
ID_AdjustHeparinRsp = 0x4C00, // 76
@@ -389,6 +404,9 @@
Q_ENUM(DD_Disinfect_States)
Q_ENUM(DD_Heat_UI_States)
Q_ENUM(DD_Valves)
+
+ #include "FPDefs.h"
+ Q_ENUM(FP_Valves)
};
// to be able to use the enum as signal/slot parameter
@@ -464,6 +482,9 @@
// DD Valves
typedef GuiActions::DD_Valves GuiDDValves;
+ // FP Valves
+ typedef GuiActions::FP_Valves GuiFPValves;
+
typedef QMap GuiStringIndexMap;
typedef QPair GuiStringIndexMapItem;
typedef QMapIterator GuiStringIndexMapIterator;
Index: sources/gui/qml/components/Slider.qml
===================================================================
diff -u -rc65859e54930664100dfdff13afa019e05ae23b6 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision c65859e54930664100dfdff13afa019e05ae23b6)
+++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -25,6 +25,7 @@
*/
RangeRect { id: _root
property real value : _progressRect.value
+ property real minStop : _root.minimum
property real defaultValue : _root.minimum
property real step : 1
@@ -54,7 +55,13 @@
property bool isRoundedEnds : true
property bool hasBorder : true
property bool showMinMaxText : true
- property color borderColor : Colors.borderDisableButton
+ property color borderColor : Colors.borderDisableButton
+ property color highlightActiveColor : Colors.sliderHighlightColor
+ property color highlightInactiveColor : Colors.createTreatmentInactive
+ property color progressBorderActiveColor : Colors.sliderProgressBorderActive
+ property color progressBorderInactiveColor : Colors.borderDisableButton
+ property color handlerActiveColor : Colors.createTreatmentActive
+ property color handlerInactiveColor : Colors.createTreatmentInactive
signal activeChanged()
signal handleSelected()
@@ -86,14 +93,16 @@
let newValue = Number.NaN
if(vIsIncrement) {
- newValue = _progressRect.value + amountChanged
+ newValue = calculateRoundedValue(_progressRect.value + amountChanged)
} else {
- newValue = _progressRect.value - amountChanged
+ newValue = calculateRoundedValue(_progressRect.value - amountChanged)
}
// Capping values based on min/max threshold
- if ( newValue < minimum ) newValue = minimum
- if ( newValue > maximum ) newValue = maximum
+ let min = calculateMinimum()
+ let max = calculateMaximum()
+ if ( newValue < min ) newValue = min
+ if ( newValue > max ) newValue = max
// Update the slider's visual value
_progressRect.previousSliderValue = newValue // for comparison purposes
@@ -105,11 +114,11 @@
function setActiveVisuals(active) {
if (active) {
- color = Colors.sliderHighlightColor
- handlerColor = Colors.createTreatmentActive
+ color = _root.highlightActiveColor
+ handlerColor = _root.handlerActiveColor
} else {
- color = Colors.createTreatmentInactive
- handlerColor = Colors.createTreatmentInactive
+ color = _root.highlightInactiveColor
+ handlerColor = _root.handlerInactiveColor
}
}
@@ -179,6 +188,12 @@
return (Math.round(vValue / step) * step).toFixed(decimal)
}
+ // round the value based on the given precision (not step)
+ function calculatePrecisionRoundedValue(value) {
+ let multiplier = Math.pow(10, decimal)
+ return Math.round(value * multiplier) / multiplier
+ }
+
function getValueOfX(x) {
return ( x * ( maximum - minimum ) ) / width + minimum
}
@@ -188,8 +203,8 @@
}
function calculateValue(x, isSnappingToTicks) {
- let mMinimum = Number(_root.minimum.toFixed(decimal))
- let mMaximum = Number(_root.maximum.toFixed(decimal))
+ let mMinimum = calculateMinimum()
+ let mMaximum = calculateMaximum()
// the center of the handler is aligned on the snap point and half width shall be used to set as min not the entire width.
// also half of the hadler is out of slider min position when set on min, which proves the same as above.
@@ -216,8 +231,10 @@
let stepWidth = width / ((mMaximum - mMinimum) / step)
if ( stepWidth < _handler.width ) {
let valueStepCount = parseInt(mValue / step)
- mValue = valueStepCount * step
- return mValue.toFixed(decimal)
+ mValue = calculateRoundedValue((valueStepCount * step))
+ if ( mValue < mMinimum ) { return mMinimum }
+ if ( mValue > mMaximum ) { return mMaximum }
+ return mValue
}
// For sliders with decimal min, max, values, we need to add refinement to
@@ -237,6 +254,44 @@
return mValue;
}
+ /*!
+ * \brief Calculate the minimum value for the slider based on the current minimum,
+ * minStop, and stepSnap values.
+ * \return If minimum is greater than or equal to minStop, then just return minimum.
+ * If minStop is greater than minimum and stepSnap is false, then return minStop.
+ * If minStop is greater than minimum and stepSnap is true, then return minStep if
+ * it falls on a step, otherwise return the step above minStop.
+ */
+ function calculateMinimum() {
+ let result = calculateRoundedValue(_root.minimum)
+ let rdMinStop = calculatePrecisionRoundedValue(_root.minStop)
+ if (rdMinStop > result) {
+ if (stepSnap) {
+ // if slider is set to snap and minimum stop is not on a step, then
+ // adjust it to one step above
+ let rdStep = calculatePrecisionRoundedValue(step)
+ result = Math.ceil(rdMinStop/rdStep) * rdStep
+ }
+ else {
+ result = rdMinStop
+ }
+ }
+ return result
+ }
+
+ /*!
+ * \brief Calculate the maximum value for the slider based on the current maximum
+ * and stepSnap values.
+ * \return If stepSnap is false, then maximum.
+ * If stepSnap is true and maximum does not fall on a step, then one step below maximum,
+ * otherwise maximum.
+ */
+ function calculateMaximum() {
+ let result = calculatePrecisionRoundedValue(_root.maximum)
+ return stepSnap ? Math.min(result, parseInt(result/step) * step)
+ : result
+ }
+
// used loader for performance since it may not always be required.
// and can be a heavy Component
Loader { id: _ticksLoader
@@ -260,7 +315,7 @@
ProgressRect { id: _progressRect
property real previousSliderValue: Number.NaN
value : minimum
- color : Colors.sliderHighlightColor
+ color : _root.highlightActiveColor
decimal : _root.decimal
minimum : _root.minimum
@@ -270,7 +325,7 @@
radius : _root.isRoundedEnds ? (height/2) : Variables.rangeRectRadius
border.width: _root.hasBorder ? Variables.rangeRectBorderWidth : 0
- border.color: _root.isActive ? Colors.sliderProgressBorderActive : Colors.borderDisableButton
+ border.color: _root.isActive ? _root.progressBorderActiveColor : _root.progressBorderInactiveColor
// propagation is not working on drag !
onDragged: {
@@ -340,7 +395,7 @@
width : diameter
height : diameter
radius : diameter
- color : Colors.highlightProgressBar
+ color : _root.handlerActiveColor
border {
width: Variables.progressbarHandlerBorderWidth
color: _root.handleBorderColor
Index: sources/gui/qml/components/TouchRect.qml
===================================================================
diff -u -r16a8f25568b4636ebc31e76c86a8031940cc4ad7 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/components/TouchRect.qml (.../TouchRect.qml) (revision 16a8f25568b4636ebc31e76c86a8031940cc4ad7)
+++ sources/gui/qml/components/TouchRect.qml (.../TouchRect.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -128,7 +128,7 @@
anchors.verticalCenter : parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
color: enabled ? _root.textColor : Colors.textDisableButton
- font.pixelSize: Fonts.fontPixelButton
+ font.pixelSize: Fonts.fontPixelDefaultButton
}
MouseArea { id: _mouseArea
Index: sources/gui/qml/compounds/StoppedSlider.qml
===================================================================
diff -u
--- sources/gui/qml/compounds/StoppedSlider.qml (revision 0)
+++ sources/gui/qml/compounds/StoppedSlider.qml (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -0,0 +1,146 @@
+/*!
+ *
+ * Copyright (c) 2020-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file StoppedSlider.qml
+ * \author (last) Stephen Quong
+ * \date (last) 20-Aug-2025
+ * \author (original) Stephen Quong
+ * \date (original) 20-Aug-2025
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+
+// Project
+// Qml imports
+import "qrc:/globals"
+import "qrc:/components"
+
+/*!
+ * \brief Slider component with a title and the currently selected value
+ */
+Item { id: _root
+ property alias decimal : _slider.decimal
+ property alias minimum : _slider.minimum
+ property alias maximum : _slider.maximum
+ property alias minStop : _slider.minStop
+ property alias value : _slider.value
+ property alias defaultValue : _slider.defaultValue
+ property alias step : _slider.step
+ property string unit : ""
+ property bool active : false
+
+ signal pressed ()
+ signal released()
+
+ function reset(vValue) {
+ _slider.reset(vValue)
+ }
+
+ function setActiveValid() {
+ _root.active = true
+ }
+
+ Slider { id : _slider
+ objectName : _root.objectName + "Slider"
+ anchors {
+ left : parent.left
+ right : _sliderArrows.left
+ rightMargin : 60
+ verticalCenter : _sliderArrows.verticalCenter
+ }
+ height : Variables.ultraFiltrationProgressBarHeight
+ bgColor : Colors.ufAdjustmentProgressBarBg
+ highlightActiveColor : Colors.ufAdjustmentDeltaFill
+ handlerActiveColor : Colors.backgroundButtonSelect
+ hasBorder : false
+ diameter : Variables.progressbarHandler
+ touchMargin : Variables.sliderDefaultBodyHeight
+ handler.z : 5
+ isActive : _root.active
+ stepSnap : true
+ ticks : true
+ radius : 0
+ onPressed : { _root.pressed () }
+ onReleased : { _root.released() }
+ onHandleSelected : { setActiveValid() }
+ onSliderSelected : { setActiveValid() }
+ minText {
+ font {
+ pixelSize : Fonts.fontPixelButton
+ weight : Font.Normal
+ }
+ color : Colors.progressBarMinMax
+ text : _root.minimum.toFixed(_root.decimal) + (_root.unit.length ? (" " + _root.unit) : "")
+ }
+ maxText {
+ font {
+ pixelSize : minText.font.pixelSize
+ weight : minText.font.weight
+ }
+ color : Colors.progressBarMinMax
+ text : _root.maximum.toFixed(_root.decimal) + (_root.unit.length ? (" " + _root.unit) : "")
+ }
+
+ Rectangle { id: _removedFill
+ anchors {
+ top : parent.top
+ bottom : parent.bottom
+ left : parent.left
+ right : _lowMarker.right
+ // adjust margin so fill completely covers the underlying slider
+ leftMargin : -1
+ }
+ z : _lowMarker.z - 1
+ color : Colors.ufProgressBarFill
+ }
+
+ RangeMarker { id: _lowMarker
+ x : (_slider.width * ((value - _slider.minimum) / (_slider.maximum - _slider.minimum))) - ((width+1)/2)
+ z : _slider.handler.z - 1
+ width : Variables.ultrafiltrationRangeMarkerWidth
+ height : Variables.rangeMarkerHeight
+ hasHandle : true
+ valueOnTop : true
+ decimal : Variables.ultrafiltrationPrecision
+ value : Math.max(_root.minStop, _root.minimum)
+ handle.width : Variables.ultrafiltrationRangeMarkerHandleWidth
+ text {
+ anchors.bottomMargin: _lowMarker.valueOnTop ? 15 : 0
+ font {
+ pixelSize: Fonts.fontPixelUltrafiltrationRangeMarker
+ weight: Font.DemiBold
+ }
+ }
+ }
+ }
+
+ SliderArrows{ id:_sliderArrows
+ anchors {
+ verticalCenter : _slider.verticalCenter
+ right : parent.right
+ }
+
+ onIncrementValue : {
+ if ( _slider.isActive) {
+ _slider.incrementValue(true)
+ }
+ else {
+ setActiveValid()
+ }
+ }
+ onDecrementValue : {
+ if ( _slider.isActive) {
+ _slider.decrementValue(true)
+ }
+ else {
+ setActiveValid()
+ }
+ }
+ }
+}
Index: sources/gui/qml/globals/Colors.qml
===================================================================
diff -u -rf8c80661c806c50047e81d581df0dd6e05f1c8ef -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision f8c80661c806c50047e81d581df0dd6e05f1c8ef)
+++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -137,6 +137,7 @@
readonly property color alarmTopBarNoneFg : white
readonly property color createTrProfileID : "#ffbb44"
+ readonly property color dropShadowDialogColor : "#4DFFF8E1"
readonly property color createTreatmentActive : "#3d8eef"
readonly property color createTreatmentInactive : backgroundRangeRect
Index: sources/gui/qml/globals/Fonts.qml
===================================================================
diff -u -r7208690c23bf7a801437b86902f2e04d173d659f -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 7208690c23bf7a801437b86902f2e04d173d659f)
+++ sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -57,7 +57,7 @@
readonly property int fontPixelFluidUnit : 22
readonly property int fontPixelFluidVolume : 16
- readonly property int fontPixelConfirm : 19
+ readonly property int fontPixelConfirm : 21
readonly property int fontPixelBack : 17
readonly property int fontPixelSliderMarker : 17
@@ -81,7 +81,6 @@
readonly property int fontPixelRinsebackAdjustmentButton : 26
readonly property int fontPixelCreateTreatment : 30
- readonly property int fontPixelCreateTreatmentTable : 24
readonly property int fontPixelCircleButtonLabel: 50
Index: sources/gui/qml/globals/Variables.qml
===================================================================
diff -u -r7208690c23bf7a801437b86902f2e04d173d659f -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 7208690c23bf7a801437b86902f2e04d173d659f)
+++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -116,27 +116,13 @@
readonly property int arrowIconDiameter : 35
readonly property int muteIconDiameter : 38
readonly property int headerIconDiameter : 40
- readonly property int topBarMenuHeight : 80 //// ----- @LEAHIZED
+ readonly property int topBarMenuHeight : 100 //// ----- @LEAHIZED
readonly property int sliderCircleDiameter : 30
readonly property int pressuresProgressbarWidth : 725
-
- readonly property int gridSelectionButtonHeight : 100
- readonly property int gridSelectionButtonWidth : 375
+ readonly property int numPadHeight : 675
+ readonly property int numPadWidth : 525
- readonly property int createTreatmentFlickableDeceleration : 4500
- readonly property int createTreatmentTableHeight : 800
- readonly property int createTreatmentTableWidth : applicationWidth - 50
- readonly property int createTreatmentMargin : 45
- readonly property int createTreatmentHeaderHeight : 130
- readonly property int createTreatmentTableMargin : 20
- readonly property int createTreatmentSubTableHeight : 50
- readonly property int createTreatmentSubTableWidth : 500
- readonly property int createTreatmentSliderMargin : sliderDefaultBodyHeight
- readonly property int createTreatmentSliderHeight : 65
- readonly property int createTreatmentSliderWidth : 750
- readonly property int createTreatmentSwitchYDisplacement : 15
-
readonly property int treatmentFlowsComponentWidth : 150
readonly property int treatmentPressureTitleWidth : 125
readonly property int treatmentPressureValueWidth : 140
@@ -206,6 +192,9 @@
readonly property int sliderAdjustButtonRightMargin : 50
readonly property int sliderAdjustPressAndHoldRefreshRate : 250
+ readonly property int adjustmentLabelUnitContainerHeight : 75
+ readonly property int adjustmentLabelUnitContainerWidth : 720
+
readonly property real sliderDefaultRoundTickMarkDiameter : 5
readonly property int sliderDefaultBodyHeight : 15
@@ -214,6 +203,7 @@
readonly property int noRejectReason : 0
readonly property int textBoxRadius : 5
+ readonly property int textBoxBorderWidth : 2
readonly property int adjustmentDialogWidth : applicationWidth * 0.7
readonly property int adjustmentDialogHeight : applicationHeight * 0.7
readonly property int adjustmentHeaderHeight : 120
@@ -282,7 +272,6 @@
// otherwise an extra RegExpValidator object will always created here.
readonly property var regExp_PatientID: /[A-Za-z0-9_\-\.]{1,64}/
-
readonly property string emptyEntry : "-- --"
readonly property string preTreatmentStepLabelCreate : qsTr("CREATE" )
Index: sources/gui/qml/pages/treatment/TreatmentStack.qml
===================================================================
diff -u -r7db80dd579054dd4754ae4d135a4a3e647f09b5f -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 7db80dd579054dd4754ae4d135a4a3e647f09b5f)
+++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -34,7 +34,7 @@
onVisibleChanged : { // this should never happen by design, but in tests it can easily happen and will block the screen touch.
_treatmentAdjustmentFlow .close()
- _vitalEntry .close( true ) // vQuit == true
+ _treatmentAdjustmentVitals .close()
_treatmentAdjustmentPressuresLimits .close()
_treatmentAdjustmentDuration .close()
_treatmentUltrafiltrationItem .close()
@@ -80,7 +80,7 @@
_treatmentAdjustmentFlow.open()
}
function onSectionVitalsClicked ( vValue ) {
- _vitalEntry.open()
+ _treatmentAdjustmentVitalsInterval.open()
}
function onSectionPressuresClicked ( vValue ) {
_treatmentAdjustmentPressuresLimits.open()
@@ -123,50 +123,8 @@
}
}
- EntryDialog { id: _vitalEntry
- function update(vSystolic, vDiastolic ,vHeartRate) {
- _bphrEntry.systolic = vSystolic ? vSystolic : ""
- _bphrEntry.diastolic = vDiastolic ? vDiastolic : ""
- _bphrEntry.heartRate = vHeartRate ? vHeartRate : ""
- }
+ TreatmentAdjustmentVitalsInterval { id: _treatmentAdjustmentVitalsInterval }
- titleText : qsTr("VITALS")
- confirmEnabled : _bphrEntry.isValid
- onConfirmClicked : {
- _vitalEntry.close()
- vTreatmentVitals.doConfirm(
- _bphrEntry.systolic ,
- _bphrEntry.diastolic ,
- _bphrEntry.heartRate
- )
- _treatmentHome.logVitalTime()
- }
-
- onCloseClicked : {
- vTreatmentVitals.doSkip() // only for logging
- }
-
- onOpened : vTreatmentVitals.doTimerStop() // Can't be moved to C++, and has to be handled here because it can manually being opened by the user
-
- onClosed : {
- if ( ! vQuit )
- vTreatmentVitals.doTimerStart()
- }
-
- BPHREntry { id : _bphrEntry
- contentRectHeight : _vitalEntry.contentRect.height
- }
-
- Connections { target: vTreatmentVitals
- function onDidTrigger ( vSystolic, vDiastolic, vHeartRate ) {
- if ( vTreatmentVitals.enableDialog ) {
- _vitalEntry.update ( vSystolic, vDiastolic, vHeartRate )
- _vitalEntry.open ()
- }
- }
- }
- }
-
// ---------- Manages Responses ----------
Connections { target: vTreatmentAdjustmentDuration
function onAdjustmentTriggered ( vValue ) {
Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml
===================================================================
diff -u -r596aa427447d3757005ae759c64c52ebb26b9503 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml (.../TreatmentAdjustmentBase.qml) (revision 596aa427447d3757005ae759c64c52ebb26b9503)
+++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml (.../TreatmentAdjustmentBase.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -106,8 +106,11 @@
// this meant to be used specifically as current state notification like paused/off in UF
// it is also available in TreatmentAdjustmentFlow and TreatmentAdjustmentDuration but not used.
NotificationBarSmall { id: _information
- visible : false
- imageSource : ""
- text : ""
+ visible : false
+ imageSource : ""
+ imageDiameter : 26
+ imageVerticalCenter : true
+ imageFillMode : Image.PreserveAspectFit
+ text : ""
}
}
Index: sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml
===================================================================
diff -u -rc32be2f566add2f6c0cbad3bb90f7eb31d6bdc83 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml (.../TreatmentSaline.qml) (revision c32be2f566add2f6c0cbad3bb90f7eb31d6bdc83)
+++ sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml (.../TreatmentSaline.qml) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -32,17 +32,16 @@
readonly property bool isIdle : vTDTreatmentStates.sbIdle
// other that max saline bolus delivered,
// if saline started but still is waiting for pump the button is disabled so user won't tap multiple times.
- readonly property bool isDisabled : vTDTreatmentStates.sbMaxReached
readonly property bool isWaitPump : vTDTreatmentStates.sbWaitPump
readonly property string unit : Variables.unitTextFluid
property int valueDecimal : Variables.salinePrecision
property int valueTarget : vTreatmentSaline.target || vTreatmentAdjustmentSaline.target
property int valueCumulative: vTreatmentSaline.cumulative
property int valueDelivered : vTreatmentSaline.delivered
- property string buttonText : ( isDisabled || isWaitPump ) ? _private.textStart :
- isStarted ? _private.textStop :
- _private.textStart
+ property string buttonText : isIdle ? _private.textStart :
+ isStarted ? _private.textStop :
+ _root.buttonText
header.title : qsTr("Saline" )
header.showEdit : false
@@ -62,10 +61,11 @@
spacing : Variables.defaultMargin * 3
Text { id: _descriptionText
- text : qsTr("Total Saline Delivered")
+ objectName: "salineDescriptionText"
+ text : isStarted ? ("%1").arg(qsTr("Delivering Saline")) : qsTr("Total Saline Delivered")
height : Variables.contentHeight
font.pixelSize : Fonts.fontPixelFluidText
- color : Colors.fluidText
+ color : isStarted ? Colors.progressBarSaline : Colors.fluidText
horizontalAlignment: Text.AlignHCenter
}
@@ -80,14 +80,14 @@
maxText.visible : false
marker.visible : false
color : Colors.progressBarSaline
- maximum : valueCumulative
- value : valueDelivered
+ maximum : valueTarget
+ value : isStarted ? valueDelivered : 0
decimal : _root.valueDecimal
radius : 9
}
Label { id: _valueDelivered
- property real value: valueDelivered
+ property real value: isStarted ? valueDelivered : valueCumulative
anchors {
verticalCenter : _valueDeliveredUnit.verticalCenter
@@ -114,12 +114,13 @@
}
TouchRect { id: _startFluidButton
- width : _fluidProgressBar.width
- height : Variables.contentHeight + 10
+ width : Variables.defaultButtonWidth
+ height : Variables.defaultButtonHeight
radius : 9
text.textFormat : Text.RichText
text.text : buttonText
isDefault : true
+ enabled : isStarted || isIdle
text.font {
weight : Font.DemiBold
@@ -131,13 +132,11 @@
}
}
}
-
- // TODO:
-// notification {
-// visible : true
-// text : isDisabled ? _private.mesgDisabled :
-// isWaitPump ? _private.mesgWaitForPump :
-// _private.mesgRejectReason
-// }
+ // TODO:
+// notification {
+// visible : true
+// text : isDisabled ? _private.mesgDisabled :
+// isWaitPump ? _private.mesgWaitForPump :
+// _private.mesgRejectReason
// }
}
Index: sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h
===================================================================
diff -u -rc6bfc4231be6bb3d370ffd38291c05954f38334a -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision c6bfc4231be6bb3d370ffd38291c05954f38334a)
+++ sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -62,15 +62,16 @@
/*!
* \brief The MDuetConfirmUIr class
- * \details The power off request model
+ * \details The confirm response model
*
* | MSG | CAN ID | Type | Ack | Src | Dst | Description |
* |:----:|:------:|:------:|:---:|:---:|:---:|:-----------: |
- * |0x0100| 0x020 | Rsp | Y | UI | HD | Confirm |
+ * |0xBB00| 0x020 | Rsp | Y | UI | TD | Confirm |
*
* | Payload ||
* | ||
- * | #1:(U08) | \ref state |
+ * | #1:(U32) | \ref mId |
+ * | #1:(U32) | \ref mConfirm |
*
*
*/
@@ -220,7 +221,7 @@
*
* | MSG | CAN ID | Type | Ack | Src | Dest | Description |
* |:----:|:------:|:----:|:---:|:---:|:----:|:--------------------:|
- * |0x1200| 0x100 | Req | Y | UI | HD | Saline Bolus Request |
+ * |0x5F00| 0x100 | Req | Y | UI | HD | Saline Bolus Request |
*
* | Payload ||
* | ||
@@ -243,6 +244,31 @@
};
/*!
+ * \brief The MAdjustVitalsReq class
+ * \details The model to request the Vitals state
+ *
+ * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description |
+ * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:--------------------:|
+ * |0x6300| 0x100 | 9 | Req | Y | UI | TD | Vitals Request |
+ *
+ * | Payload ||
+ * | ||
+ * | None ||
+ *
+ * \sa State
+ * \sa MTreatmentVitals: Vitals Data
+ * \sa MAdjustVitalsResponse : Vitals Response
+ *
+ */
+class MAdjustVitalsReq : public MModel {
+public:
+ static QString toString(const QVariantList &vParameters) {
+ return MModel::toString("AdjustVitals", vParameters);
+ }
+};
+
+
+/*!
* \brief The MAdjustHeparinReq class
* \details The model to request the Heparin state
*
@@ -447,6 +473,7 @@
typedef Model:: MAdjustUltrafiltrationEditReq AdjustUltrafiltrationEditRequestData;
typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData;
typedef Model:: MAdjustSalineReq AdjustSalineRequestData;
+typedef Model:: MAdjustVitalsReq AdjustVitalsRequestData;
typedef Model:: MAdjustHeparinReq AdjustHeparinRequestData;
typedef Model:: MAdjustRinsebackReq AdjustRinsebackRequestData;
typedef Model:: MAdjustRecirculateReq AdjustRecirculateRequestData;
Index: sources/view/hd/data/VTreatmentRanges.cpp
===================================================================
diff -u -ree594afa3a2084c03395570954d723d04bbae215 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision ee594afa3a2084c03395570954d723d04bbae215)
+++ sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -144,6 +144,7 @@
FROMVARIANT_WITHRETURN ( heparinBolusVolumeMax , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Max" , Float , isConfigsOk );
FROMVARIANT_WITHRETURN ( heparinBolusVolumeRes , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Res" , Float , isConfigsOk );
+ // heparinStopTime: Def, Max, Res intentionally omitted (see config/configurations/Parameters/DataList.conf)
FROMVARIANT_WITHRETURN ( heparinStopTimeMin , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Min" , UInt , isConfigsOk );
// These were removed to ensure the check on the Heparin stop time matches the Treatment Duration.
// FROMVARIANT_WITHRETURN ( heparinStopTimeMax , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Max" , UInt , isConfigsOk );
@@ -185,6 +186,7 @@
FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowMax , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowRes , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Res" , Int , isConfigsOk );
+ // trancembrncPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf)
FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorMin , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Min" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorMax , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorRes , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Res" , Int , isConfigsOk );
@@ -194,6 +196,7 @@
FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowMax , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowRes , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Res" , Int , isConfigsOk );
+ // arterialPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf)
FROMVARIANT_WITHRETURN ( arterialPressureMonitorMin , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Min" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( arterialPressureMonitorMax , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( arterialPressureMonitorRes , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Res" , Int , isConfigsOk );
@@ -208,6 +211,7 @@
FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcMax , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcRes , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Res" , Int , isConfigsOk );
+ // venousPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf)
FROMVARIANT_WITHRETURN ( venousPressureMonitorMin , "Venous Blood Pressure Ranges" , "Venous_Monitor_Min" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( venousPressureMonitorMax , "Venous Blood Pressure Ranges" , "Venous_Monitor_Max" , Int , isConfigsOk );
FROMVARIANT_WITHRETURN ( venousPressureMonitorRes , "Venous Blood Pressure Ranges" , "Venous_Monitor_Res" , Int , isConfigsOk );
@@ -227,5 +231,8 @@
FROMVARIANT_WITHRETURN ( rinsebackFlowRateMax , "Rinseback Volume Ranges" , "Rinseback_Volume_Max" , UInt , isConfigsOk );
FROMVARIANT_WITHRETURN ( rinsebackFlowRateRes , "Rinseback Volume Ranges" , "Rinseback_Volume_Res" , UInt , isConfigsOk );
+ // ultrafiltrationVolume: Def, Min, Max intentionally omitted (see config/configurations/Parameters/DataList.conf)
+ FROMVARIANT_WITHRETURN ( ultrafiltrationVolumeRes , "Ultrafiltration Volume Ranges" , "Ultrafiltration_Volume_Res" , Float , isConfigsOk );
+
emit didTreatmentRangesDone( isConfigsOk );
}
Index: sources/view/hd/data/VTreatmentRanges.h
===================================================================
diff -u -ree594afa3a2084c03395570954d723d04bbae215 -rcb9c48c7c307690dcafcfd16ef412fe660291692
--- sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision ee594afa3a2084c03395570954d723d04bbae215)
+++ sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision cb9c48c7c307690dcafcfd16ef412fe660291692)
@@ -78,6 +78,9 @@
RANGESET( qint32 , arterialPressureMonitor , 0)
RANGESET( qint32 , venousPressureMonitor , 0)
+ // ultrafiltration
+ RANGESET( float , ultrafiltrationVolume , 0)
+
VIEW_DEC_CLASS(VTreatmentRanges )
VIEW_DEC_SLOT(TreatmentRangesData )
VIEW_DEC_SLOT(SettingsData )