Index: leahi.pro =================================================================== diff -u -r62797b3c6e0539e22a04404e16daa7c4465e178f -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- leahi.pro (.../leahi.pro) (revision 62797b3c6e0539e22a04404e16daa7c4465e178f) +++ leahi.pro (.../leahi.pro) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -170,10 +170,12 @@ 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/MAdjustTDAdvancedInstitutionalRecordResponse.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/settings/MTDAdvancedInstitutionalRecordResponse.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 \ @@ -235,8 +237,9 @@ 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/settings/VAdjustmentAdvancedInstitutionalRecord.h \ + sources/view/settings/VAdvancedInstitutionalRecord.h \ sources/view/td/data/VTDAirBubbleData.h \ sources/view/td/data/VTDAirPumpData.h \ sources/view/td/data/VTDAirTrapData.h \ @@ -258,6 +261,16 @@ sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.h \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationState.h \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.h \ + \ # ---------- Models - TD - Adjustment - In-Treatment + sources/model/td/adjustment/treatment/MTreatmentAdjustSalineResponse.h \ + \ # ---------- Models - TD - Adjustment - Settings + sources/model/td/adjustment/settings/MAdjustTDDateTimeResponse.h \ + sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.h \ + sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.h \ + \ # ---------- Models - DD - Adjustment - Settings + sources/model/dd/adjustment/settings/MAdjustDDDateTimeResponse.h \ + \ # ---------- Models - TD - Adjustment - End-Treatment + sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.h \ \ # ---------- Models - confirm sources/model/confirm/MDuetConfirmHDi.h \ \ # ---------- Models - POST @@ -274,7 +287,6 @@ sources/model/hd/adjustment/settings/MAdjustHDServiceModeResponse.h \ sources/model/dg/adjustment/settings/MAdjustDGServiceDatesResponse.h \ sources/model/hd/adjustment/settings/MAdjustHDServiceDatesResponse.h \ - sources/model/hd/adjustment/settings/MAdjustHDInstitutionalRecordResponse.h \ sources/model/dg/adjustment/settings/MDuetRoWaterDG.h \ \ # ---------- Models - Alarm sources/model/hd/alarm/MAlarmStatusData.h \ @@ -289,7 +301,6 @@ sources/model/hd/adjustment/MAdjustPowerOff.h \ sources/model/hd/adjustment/settings/MAdjustHDRequests.h \ \ # ---------- Models - HD - Adjustment - Settings - sources/model/hd/adjustment/settings/MAdjustHDDateTimeResponse.h \ sources/model/hd/adjustment/settings/MAdjustHDAlarmVolumeResponse.h \ \ # ---------- Models - HD - Adjustment - Pre-Treatment sources/model/hd/adjustment/pretreatment/MPreTreatmentAdjustRequests.h \ @@ -309,7 +320,6 @@ \ # ---------- Models - HD - Adjustment - End-Treatment sources/model/hd/adjustment/treatment/MTreatmentAdjustRinsebackResponse.h \ sources/model/hd/adjustment/treatment/MTreatmentAdjustRecirculateResponse.h \ - sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.h \ \ # ---------- Models - HD - Adjustment - Post-Treatment sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustRequests.h \ sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.h \ @@ -347,8 +357,6 @@ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/settings/MAdjustDGRequests.h \ sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.h \ - \ # ---------- Models - DG - Adjustment - Settings - sources/model/dg/adjustment/settings/MAdjustDGDateTimeResponse.h \ \ # ---------- Models - DG - Data - Pre-Treatment - Progress sources/model/dg/data/pretreatment/MDGFilterFlushData.h \ \ # ---------- Models - DG - Data - Disinfect - Progress @@ -398,6 +406,7 @@ sources/view/settings/VCloudSync.h \ sources/view/settings/VHDUsageInfo.h \ sources/view/settings/VAdjustmentInstitutionalRecord.h \ + sources/view/settings/VInstitutionalRecord.h \ \ # ---------- Views - Alarm sources/view/hd/alarm/VAlarmStatus.h \ sources/view/hd/alarm/VAlarmActiveList.h \ @@ -510,10 +519,11 @@ 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/MAdjustTDAdvancedInstitutionalRecordResponse.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/settings/MTDAdvancedInstitutionalRecordResponse.cpp \ sources/model/td/data/MTDAirBubbleData.cpp \ sources/model/td/data/MTDAirPumpData.cpp \ sources/model/td/data/MTDAirTrapData.cpp \ @@ -551,7 +561,6 @@ 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 \ @@ -575,6 +584,8 @@ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationConfirmResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationEditResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustUltrafiltrationStateResponse.cpp \ + \ # ---------- Models - TD - Adjustment - End-Treatment + sources/model/td/adjustment/treatment/MTreatmentAdjustEndResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustVitalsResponse.cpp \ \ # ---------- Models - CONFIRM sources/model/confirm/MDuetConfirmHDi.cpp \ @@ -590,7 +601,6 @@ sources/model/hd/adjustment/settings/MAdjustHDServiceModeResponse.cpp \ sources/model/dg/adjustment/settings/MAdjustDGServiceDatesResponse.cpp \ sources/model/hd/adjustment/settings/MAdjustHDServiceDatesResponse.cpp \ - sources/model/hd/adjustment/settings/MAdjustHDInstitutionalRecordResponse.cpp \ sources/model/dg/adjustment/settings/MDuetRoWaterDG.cpp \ \ # ---------- Models - Alarm sources/model/hd/alarm/MAlarmStatusData.cpp \ @@ -601,10 +611,15 @@ \ # ---------- Models - Data - States sources/model/hd/data/pretreatment/MPreTreatmentStatesData.cpp \ sources/model/hd/data/posttreatment/MPostTreatmentStatesData.cpp \ + \ # ---------- Models - TD - Adjustment - Settings + sources/model/td/adjustment/settings/MAdjustTDDateTimeResponse.cpp \ + sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.cpp \ + sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.cpp \ + \ # ---------- Models - DD - Adjustment - Settings + sources/model/dd/adjustment/settings/MAdjustDDDateTimeResponse.cpp \ \ # ---------- Models - HD - Adjustment sources/model/hd/adjustment/MAdjustPowerOff.cpp \ \ # ---------- Models - HD - Adjustment - Settings - sources/model/hd/adjustment/settings/MAdjustHDDateTimeResponse.cpp \ sources/model/hd/adjustment/settings/MAdjustHDAlarmVolumeResponse.cpp \ \ # ---------- Models - HD - Adjustment - Pre-Treatment sources/model/hd/adjustment/pretreatment/MPreTreatmentAdjustInitTreatmentResponse.cpp \ @@ -622,7 +637,6 @@ \ # ---------- Models - HD - Adjustment - End-Treatment sources/model/hd/adjustment/treatment/MTreatmentAdjustRinsebackResponse.cpp \ sources/model/hd/adjustment/treatment/MTreatmentAdjustRecirculateResponse.cpp \ - sources/model/hd/adjustment/treatment/MTreatmentAdjustEndResponse.cpp \ \ # ---------- Models - HD - Adjustment - Post-Treatment sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.cpp \ sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustDisposablesRemovalConfirmResponse.cpp \ @@ -656,7 +670,6 @@ sources/model/hd/data/treatmentlog/MTreatmentLogEventData.cpp \ \ # ---------- Models - DG - Adjustment \ # ---------- Models - DG - Adjustment - Settings - sources/model/dg/adjustment/settings/MAdjustDGDateTimeResponse.cpp \ sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.cpp \ \ # ---------- Models - DG - Data - Pre-Treatment - Progress sources/model/dg/data/pretreatment/MDGFilterFlushData.cpp \ @@ -688,6 +701,8 @@ sources/view/VGeneralEvent.cpp \ sources/device/DeviceView.cpp \ \ # ---------- Views - TD - States Data + sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.cpp \ + sources/view/settings/VAdvancedInstitutionalRecord.cpp \ sources/view/td/data/VTDAirBubbleData.cpp \ sources/view/td/data/VTDAirPumpData.cpp \ sources/view/td/data/VTDAirTrapData.cpp \ @@ -730,6 +745,7 @@ sources/view/settings/VAdjustmentDGCleaningUsage.cpp \ sources/view/settings/VHDUsageInfo.cpp \ sources/view/settings/VAdjustmentInstitutionalRecord.cpp \ + sources/view/settings/VInstitutionalRecord.cpp \ \ # ---------- Views - HD - Adjustment sources/view/VAdjustmentResponseBase.cpp \ \ # ---------- Views - HD - Adjustment - common Index: leahi.qrc =================================================================== diff -u -r232dc65ad1d642f750547db6c480da534704a2c4 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- leahi.qrc (.../leahi.qrc) (revision 232dc65ad1d642f750547db6c480da534704a2c4) +++ leahi.qrc (.../leahi.qrc) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -173,6 +173,7 @@ sources/gui/qml/components/BaseSwitch.qml sources/gui/qml/components/IdleTimer.qml sources/gui/qml/components/TreatmentCompleteButton.qml + sources/gui/qml/components/RangedValue.qml sources/gui/qml/compounds/PressureRangeSlider.qml @@ -183,10 +184,12 @@ sources/gui/qml/compounds/BPHREntry.qml sources/gui/qml/compounds/NumPad.qml sources/gui/qml/compounds/LabelUnitContainer.qml + sources/gui/qml/compounds/LabelUnitText.qml sources/gui/qml/compounds/ValueAdjuster.qml sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml sources/gui/qml/compounds/InstitutionalContainer.qml sources/gui/qml/compounds/ValueAdjusterCustom.qml + sources/gui/qml/compounds/LabelUnitValueAdjuster.qml qtquickcontrols2.conf @@ -276,14 +279,17 @@ sources/gui/qml/pages/treatment/sections/TreatmentFlowsComponent.qml - sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentFlow.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBolusVolume.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationConfirm.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltration.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml 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 Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -r232dc65ad1d642f750547db6c480da534704a2c4 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 232dc65ad1d642f750547db6c480da534704a2c4) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -239,19 +239,88 @@ /*! * \brief MessageDispatcher::onAdjustment - * \details This method transmits the treatment duration Adjustment Denali message. + * \details This method transmits the treatment duration adjustment message. * \param vData - Data model contains treatment duration adjustment value in minutes * \return void */ -void MessageDispatcher::onAdjustment(const AdjustDurationRequestData &vData) +void MessageDispatcher::onAdjustment(const AdjustDurationEditRequestData &vData) { QVariantList mData; mData += vData.duration; - onActionTransmit(GuiActionType::ID_AdjustDurationReq, mData); + onActionTransmit(GuiActionType::ID_AdjustDurationEditReq, mData); } /*! * \brief MessageDispatcher::onAdjustment + * \details This method transmits the treatment duration adjustment confirm message. + * \param vData - Data model contains treatment duration adjustment value in minutes + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustDurationConfirmRequestData &vData) +{ + QVariantList mData; + mData += vData.duration; + onActionTransmit(GuiActionType::ID_AdjustDurationConfirmReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the set points adjustment request message. + * \param vData - Data model contains set points adjustment values + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustSetPointsRequestData &vData) +{ + QVariantList mData; + mData += vData.bloodFlowRate ; + mData += vData.dialysateFlowRate ; + mData += vData.dialysateTemperature ; + mData += vData.acidConcentrate ; + mData += vData.bicarbConcentrate ; + onActionTransmit(GuiActionType::ID_AdjustSetPointsReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the dialysate temperature adjustment request message. + * \param vData - Data model contains dialysate temperature adjustment values + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustDialysateTemperatureRequestData &vData) +{ + QVariantList mData; + mData += vData.dialysateTemperature; + onActionTransmit(GuiActionType::ID_AdjustDialysateTemperatureReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the dialysate rate adjustment request message. + * \param vData - Data model contains dialysate rate adjustment values + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustDialysateFlowRateRequestData &vData) +{ + QVariantList mData; + mData += vData.dialysateFlowRate; + onActionTransmit(GuiActionType::ID_AdjustDialysateFlowRateReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the blood flow rate adjustment request message. + * \param vData - Data model contains blood flow rate adjustment values + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustBloodFlowRateRequestData &vData) +{ + QVariantList mData; + mData += vData.bloodFlowRate; + onActionTransmit(GuiActionType::ID_AdjustBloodFlowRateReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment * \details This method transmits the Ultrafiltration State Adjustment Denali message. * \param vData - Data model contains treatment ultrafiltration state adjustment * \return void @@ -471,6 +540,19 @@ /*! * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Bolus Volume Adjustment message. + * \param vData - Data model contains treatment bolus volume adjustment. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustBolusVolumeRequestData &vData) +{ + QVariantList mData; + mData += vData.mBolusVolume; + onActionTransmit(GuiActionType::ID_AdjustBolusVolumeReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment * \details This method transmits the Pressures Limits Adjustment Denali message. * \param vData - Data model contains treatment Pressures Limits adjustment. * \return void @@ -481,6 +563,7 @@ mData += vData.mArterialPressureLimitWindow ; mData += vData.mVenousPressureLimitWindow ; mData += vData.mVenousPressureLimitAsymtrc ; + mData += vData.mTmpLimitWindow ; onActionTransmit(GuiActionType::ID_AdjustPressuresLimitsReq, mData); } @@ -520,7 +603,7 @@ mData += vData.mArterialPressureLimitWindow ; mData += vData.mVenousPressureLimitWindow ; mData += vData.mVenousPressureLimitAsymtrc ; - mData += vData.mTrancembrncPressureLimitWindow ; + mData += vData.mTransmembranePressureLimitWindow; mData += vData.mDialysateTemp ; mData += vData.mHeparinDispensingRate ; mData += vData.mHeparinBolusVolume ; Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -r6f84868686bf6d3e58887eb80c749c57cf07a00e -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 6f84868686bf6d3e58887eb80c749c57cf07a00e) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -162,10 +162,13 @@ GuiActionType::ID_AdjustVersionsUIReq , GuiActionType::ID_AdjustVersionsUIRsp , GuiActionType::ID_AdjustServiceDatesReq , - GuiActionType::ID_AdjustHDDateTimeReq , - GuiActionType::ID_AdjustDGDateTimeReq , + GuiActionType::ID_AdjustTDDateTimeReq , + GuiActionType::ID_AdjustDDDateTimeReq , GuiActionType::ID_HDUsageInfoReq , GuiActionType::ID_AdjustInstitutionalRecordReq , + GuiActionType::ID_InstitutionalRecordReq , + GuiActionType::ID_AdjustAdvancedInstitutionalRecordReq , + GuiActionType::ID_AdvancedInstitutionalRecordReq , // Treatment Log GuiActionType::ID_AdjustTreatmentLogReq , GuiActionType::ID_TreatmentLogAvrgeData , Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rc54863854ab063797737c6b3753e00115c0bbd11 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision c54863854ab063797737c6b3753e00115c0bbd11) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -153,10 +153,32 @@ {Gui::GuiActionType::ID_AdjustBloodDialysateRsp , 4 * 4 }, // 4 parameters each 4bytes // ---- - {Gui::GuiActionType::ID_AdjustDurationReq , 1 * 4 }, // 1 parameter each 4bytes - {Gui::GuiActionType::ID_AdjustDurationRsp , 4 * 4 }, // 4 parameters each 4bytes + {Gui::GuiActionType::ID_AdjustBolusVolumeReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustBolusVolumeRsp , 2 * 4 }, // 2 parameters each 4bytes // ---- + {Gui::GuiActionType::ID_AdjustDurationEditReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustDurationEditRsp , 5 * 4 }, // 5 parameters each 4bytes + {Gui::GuiActionType::ID_AdjustDurationConfirmReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustDurationConfirmRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- + {Gui::GuiActionType::ID_AdjustSetPointsReq , 5 * 4 }, // 5 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustSetPointsRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- + {Gui::GuiActionType::ID_AdjustBloodFlowRateReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustBloodFlowRateRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- + {Gui::GuiActionType::ID_AdjustDialysateFlowRateReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustDialysateFlowRateRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- + {Gui::GuiActionType::ID_AdjustDialysateTemperatureReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustDialysateTemperatureRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- {Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq , 1 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp , 2 * 4 }, // 2 parameter each 4bytes @@ -166,11 +188,11 @@ // ---- {Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq , 1 * 4 }, // 1 parameters each 4bytes - {Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp , 5 * 4 }, // 5 parameters each 4bytes + {Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp , 2 * 4 }, // 2 parameters each 4bytes // ---- - {Gui::GuiActionType::ID_AdjustPressuresLimitsReq , 3 * 4 }, // 3 parameter each 4bytes - {Gui::GuiActionType::ID_AdjustPressuresLimitsRsp , 5 * 4 }, // 5 parameters each 4bytes + {Gui::GuiActionType::ID_AdjustPressuresLimitsReq , 4 * 4 }, // 4 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustPressuresLimitsRsp , 2 * 4 }, // 2 parameters each 4bytes // Pre-Treatment // Create Parameters Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r62797b3c6e0539e22a04404e16daa7c4465e178f -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 62797b3c6e0539e22a04404e16daa7c4465e178f) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -226,11 +226,14 @@ case Gui::GuiActionType::ID_AdjustServiceModeReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustServiceModeRequestData ); break; case Gui::GuiActionType::ID_AdjustVersionsUIRsp : INTERPRET_TRANSMIT_MESSAGE(AdjustVersionsResponseData ); break; case Gui::GuiActionType::ID_AdjustVersionsUIReq : INTERPRET_TRANSMIT_MESSAGE(AdjustVersionsRequestData ); break; - case Gui::GuiActionType::ID_AdjustHDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustHDDateTimeRequestData ); break; - case Gui::GuiActionType::ID_AdjustDGDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDGDateTimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustTDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTDDateTimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustDDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDDDateTimeRequestData ); break; case Gui::GuiActionType::ID_AdjustServiceDatesReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustServiceDatesRequestData ); break; case Gui::GuiActionType::ID_HDUsageInfoReq : INTERPRET_TRSMT_MT_MESSAGE(HDUsageInfoRequestData ); break; - case Gui::GuiActionType::ID_AdjustInstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustInstitutionalRequestData ); break; + case Gui::GuiActionType::ID_AdjustInstitutionalRecordReq : INTERPRET_TRANSMIT_MESSAGE(AdjustInstitutionalRequestData ); break; + case Gui::GuiActionType::ID_InstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(InstitutionalRequestData ); break; + case Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordReq : INTERPRET_TRANSMIT_MESSAGE(AdjustAdvancedInstitutionalRequestData ); break; + case Gui::GuiActionType::ID_AdvancedInstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(AdvancedInstitutionalRequestData ); break; // Pre-Treatment case Gui::GuiActionType::ID_AdjustInitTreatmentReq : INTERPRET_TRANSMIT_MESSAGE(AdjustInitTreatmentRequestData ); break; case Gui::GuiActionType::ID_AdjustParametersValidationReq : INTERPRET_TRANSMIT_MESSAGE(AdjustParametersValidationRequestData ); break; @@ -265,7 +268,7 @@ // End-Treatment case Gui::GuiActionType::ID_AdjustRinsebackReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRinsebackRequestData ); break; case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRecirculateRequestData ); break; - case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTreatmentEndRequestData ); break; + case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustTreatmentEndRequestData ); break; // Post-Treatment case Gui::GuiActionType::ID_AdjustPatientDisconnectNotifyReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionNotifyRequestData ); break; case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionConfirmRequestData ); break; @@ -473,10 +476,15 @@ case Gui::GuiActionType::ID_AdjustVersionsTDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsTDRsp ); break; case Gui::GuiActionType::ID_AdjustSerialTDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialTDRsp ); break; case Gui::GuiActionType::ID_AdjustServiceDatesHDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustServiceDatesHDRsp ); break; - case Gui::GuiActionType::ID_AdjustHDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDDateTimeRsp ); break; + case Gui::GuiActionType::ID_AdjustTDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTDDateTimeRsp ); break; case Gui::GuiActionType::ID_HDUsageInfoRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDUsageInfoRsp ); break; case Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp ); break; - // ----- States + case Gui::GuiActionType::ID_InstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_InstitutionalRecordRsp ); break; + case Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordRsp: ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordRsp); break; + case Gui::GuiActionType::ID_AdvancedInstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdvancedInstitutionalRecordRsp ); break; + + + // ----- States case Gui::GuiActionType::ID_TDOpModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TDOpModeData ); break; case Gui::GuiActionType::ID_PreTreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PreTreatmentStates ); break; case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; @@ -627,7 +635,7 @@ case Gui::GuiActionType::ID_AdjustVersionsDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsDDRsp ); break; case Gui::GuiActionType::ID_AdjustSerialDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialDDRsp ); break; case Gui::GuiActionType::ID_AdjustServiceDatesDGRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustServiceDatesDGRsp ); break; - case Gui::GuiActionType::ID_AdjustDGDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGDateTimeRsp ); break; + case Gui::GuiActionType::ID_AdjustDDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDDDateTimeRsp ); break; case Gui::GuiActionType::ID_AdjustDGCleaningUsageRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGCleaningUsageRsp ); break; // RO Water case Gui::GuiActionType::ID_DuetRoWaterStatDGq : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DuetRoWaterStatDGq ); break; @@ -662,7 +670,6 @@ LOG_APPED(QString("FP,CheckIn," + QVariant(vData).toStringList().join(','))); break; // FP data messages - case Gui::GuiActionType::ID_FPValvesStatesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPValvesStatesData ); break; case Gui::GuiActionType::ID_FPROPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPROPumpData ); break; case Gui::GuiActionType::ID_FPPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPPressuresData ); break; case Gui::GuiActionType::ID_FPLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPLevelData ); break; Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -rc54863854ab063797737c6b3753e00115c0bbd11 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision c54863854ab063797737c6b3753e00115c0bbd11) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -129,7 +129,8 @@ // ----- #include "VTreatmentCreate.h" // ----- In-Treatment Adjustments -#include "VTreatmentAdjustmentDuration.h" +#include "VTreatmentAdjustmentDurationEdit.h" +#include "VTreatmentAdjustmentDurationConfirm.h" #include "VTreatmentAdjustmentFlows.h" #include "VTreatmentAdjustmentUltrafiltrationState.h" #include "VTreatmentAdjustmentUltrafiltrationEdit.h" @@ -140,6 +141,13 @@ #include "VTreatmentAdjustmentRinseback.h" #include "VTreatmentAdjustmentRecirculate.h" #include "VTreatmentAdjustmentPressuresLimits.h" +#include "VTreatmentAdjustmentBloodFlowRate.h" +#include "VTreatmentAdjustmentBolusVolume.h" +#include "VTreatmentAdjustmentDialysateFlowRate.h" +#include "VTreatmentAdjustmentDialysateTemperature.h" +#include "VTreatmentAdjustmentDurationConfirm.h" +#include "VTreatmentAdjustmentDurationEdit.h" +#include "VTreatmentAdjustmentSetPoints.h" // ----- Post-Treatment Adjustments #include "VPostTreatmentAdjustPatientDisconnectionConfirm.h" #include "VPostTreatmentAdjustDisposablesRemovalConfirm.h" Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r3000579296b1baa02f21dbe44e27f1c7e56e3821 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 3000579296b1baa02f21dbe44e27f1c7e56e3821) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -82,7 +82,7 @@ ID_DuetConfirmUIr = 0xBB00, // 187 // POST - ID_HDPostSingleResultData = 0x8E00, // 142 + ID_HDPostSingleResultData = 0x8E0F, // 142 //// ----- @CRAPIZED: had to change to avoid duplication ID_HDPostFinalResultData = 0x8F00, // 143 ID_DGPostSingleResultData = 0x9000, // 144 ID_DGPostFinalResultData = 0x9100, // 145 @@ -105,19 +105,19 @@ ID_AdjustSerialDDRsp = 0x5200, // 82 //// ----- @LEAHIZED // Service Information - ID_AdjustServiceDatesReq = 0x8900, // 137 - ID_AdjustServiceDatesHDRsp = 0x8A00, // 138 - ID_AdjustServiceDatesDGRsp = 0x8C00, // 140 + ID_AdjustServiceDatesReq = 0x890F, // 137 //// ----- @CRAPIZED: had to change to avoid duplication + ID_AdjustServiceDatesHDRsp = 0x8A0F, // 138 //// ----- @CRAPIZED: had to change to avoid duplication + ID_AdjustServiceDatesDGRsp = 0x8C0F, // 140 //// ----- @CRAPIZED: had to change to avoid duplication // HD/DG Usage Counter ID_HDUsageInfoReq = 0xA000, // 160 - ID_HDUsageInfoRsp = 0x8B00, // 139 + ID_HDUsageInfoRsp = 0x8B0F, // 139 //// ----- @CRAPIZED: had to change to avoid duplication // RTC - ID_AdjustHDDateTimeReq = 0x6D00, // 109 - ID_AdjustHDDateTimeRsp = 0x6E00, // 110 - ID_AdjustDGDateTimeReq = 0x6F00, // 111 - ID_AdjustDGDateTimeRsp = 0x7000, // 112 + ID_AdjustTDDateTimeReq = 0x6C00, // 108 + ID_AdjustTDDateTimeRsp = 0x6D00, // 109 + ID_AdjustDDDateTimeReq = 0x6E00, // 110 + ID_AdjustDDDateTimeRsp = 0x6F00, // 111 ID_HDRTCEpochData = 0x0A0F, // 10 //// ----- @CRAPIZED // State Messages @@ -136,7 +136,7 @@ ID_PressureOcclusion = 0x2400, // 36 //// ----- @LEAHIZED ID_Saline = 0x3D00, // 61 //// ----- @LEAHIZED ID_Ultrafiltration = 0x3E00, // 62 //// ----- @LEAHIZED - ID_Heparin = 0x4D00, // 77 + ID_Heparin = 0x8C00, // 140 ID_Rinseback = 0x5600, // 86 ID_Recirculate = 0x5A00, // 90 ID_BloodPrime = 0x5900, // 89 @@ -212,7 +212,7 @@ ID_DDBloodLeakData = 0x6000, // 96 //// ----- TODO: Payload subject to change given FW implementation // FP Data Messages - ID_FPValvesStatesData = 0x3100, // 49 //// ----- @LEAHIZED + ID_FPValvesStatesData = 0x310F, // 49 //// ----- @OBSOLETE. REMOVE? ID_FPROPumpData = 0x3200, // 50 //// ----- @LEAHIZED ID_FPPressuresData = 0x3400, // 52 //// ----- @LEAHIZED ID_FPLevelData = 0x3500, // 53 //// ----- @LEAHIZED @@ -224,7 +224,7 @@ // HD Data Messages ID_HDAccelerometerData = 0x3300, // 51 ID_HDSyringePumpData = 0x6900, // 105 - ID_HDBloodLeakData = 0x6C00, // 108 + ID_HDBloodLeakData = 0x6C0F, // 108 //// ----- @CRAPIZED: had to change to avoid duplication ID_TDAirBubbleData = 0x1E00, // 30 //// ----- @LEAHIZED ID_TDAirPumpData = 0x2000, // 32 //// ----- @LEAHIZED ID_TDAirTrapData = 0x2A00, // 42 //// ----- @LEAHIZED @@ -269,8 +269,8 @@ ID_AdjustVitalsReq = 0x6300, // 99 ID_AdjustVitalsRsp = 0x6400, // 100 - ID_AdjustHeparinReq = 0x4B00, // 75 - ID_AdjustHeparinRsp = 0x4C00, // 76 + ID_AdjustHeparinReq = 0x8A00, // 138 + ID_AdjustHeparinRsp = 0x8B00, // 139 // Ultrafiltration ID_AdjustUltrafiltrationStateReq = 0x4700, // 71 //// ----- @LEAHIZED @@ -292,8 +292,8 @@ ID_AdjustRecirculateRsp = 0x5500, // 85 // Treatment End - ID_AdjustTreatmentEndReq = 0x5700, // 87 - ID_AdjustTreatmentEndRsp = 0x5800, // 88 + ID_AdjustTreatmentEndReq = 0x8D00, // 141 + ID_AdjustTreatmentEndRsp = 0x8E00, // 142 // Post-Treatment // Patient Disconnect @@ -320,17 +320,25 @@ ID_AdjustDisinfectStartRsp = 0x800F, // 128 //// ----- @CRAPIZED: had to change to avoid duplication ID_AdjustDGCleaningUsageReq = 0xB800, // 184 - ID_AdjustDGCleaningUsageRsp = 0x8D00, // 141 + ID_AdjustDGCleaningUsageRsp = 0x8D0F, // 141 //// ----- @CRAPIZED: had to change to avoid duplication // RO Water Input Mode ID_DuetRoWaterStatDGq = 0xC300, // 195 DG -> UI // DG initiates Status query ID_DuetRoWaterModeUIi = 0xBC00, // 188 UI -> DG // UI initiates Mode Set || responses to status query ID_DuetRoWaterModeDGr = 0xC400, // 196 UI <- DG // DG responses Mode Set // Institutional record request and response - ID_AdjustInstitutionalRecordReq = 0xCF00, // 207 UI -> HD request institutional record - ID_AdjustInstitutionalRecordRsp = 0xD000, // 208 HD -> UI response institutional record + ID_InstitutionalRecordReq = 0x8200, // 130 UI -> TD request institutional record + ID_InstitutionalRecordRsp = 0x8300, // 131 TD -> UI response institutional record + ID_AdjustInstitutionalRecordReq = 0x8400, // 132 UI -> TD request institutional record + ID_AdjustInstitutionalRecordRsp = 0x8500, // 133 TD -> UI response institutional record + // Advanced Institutional record request and response + ID_AdvancedInstitutionalRecordReq = 0x8600, // 134 UI -> TD request institutional record + ID_AdvancedInstitutionalRecordRsp = 0x8700, // 135 TD -> UI response institutional record + ID_AdjustAdvancedInstitutionalRecordReq = 0x8800, // 136 UI -> TD request institutional record + ID_AdjustAdvancedInstitutionalRecordRsp = 0x8900, // 137 TD -> UI response institutional record + // HD reset request in service mode ID_ResetHDInServiceModeReq = 0xB900, // 185 UI -> HD reset in service mode }; @@ -423,7 +431,6 @@ Q_ENUM(DD_Valves) #include "FPDefs.h" - Q_ENUM(FP_Valves) }; // to be able to use the enum as signal/slot parameter @@ -499,9 +506,6 @@ // DD Valves typedef GuiActions::DD_Valves GuiDDValves; - // FP Valves - typedef GuiActions::FP_Valves GuiFPValves; - typedef QMap GuiStringIndexMap; typedef QPair GuiStringIndexMapItem; typedef QMapIterator GuiStringIndexMapIterator; @@ -542,4 +546,4 @@ void registerQmlTypes(); bool startGui(); -} + } Index: sources/gui/qml/compounds/LabelUnitContainer.qml =================================================================== diff -u -r44b18327125389577b34655dfc0d95331c4b8f14 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/compounds/LabelUnitContainer.qml (.../LabelUnitContainer.qml) (revision 44b18327125389577b34655dfc0d95331c4b8f14) +++ sources/gui/qml/compounds/LabelUnitContainer.qml (.../LabelUnitContainer.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -25,12 +25,12 @@ property Item contentItem : null property alias contentArea : _contentArea - property alias text : _title.text - property alias titleFontPixelSize : _title.font.pixelSize - property string unitText : "" - property alias unitFontPixelSize : _unit.font.pixelSize - property bool valid : true - property bool showEdit : false + property alias text : _title.text + property string unitText : "" + property bool valid : true + property bool showEdit : false + property int titleFontSize : Fonts.fontPixelDefaultButton + property int unitFontSize : Fonts.fontUnit height : cellHeight width : cellWidth @@ -48,21 +48,21 @@ anchors { verticalCenter : parent.verticalCenter left : parent.left - leftMargin : Variables.defaultMargin + leftMargin : Variables.minVGap + Variables.defaultMargin } spacing : 10 Text { id: _title anchors.verticalCenter : _titleRow.verticalCenter color : Colors.offWhite - font.pixelSize : Fonts.fontPixelContainerTitle + font.pixelSize : _root.titleFontSize } Text { id: _unit anchors.baseline: _title.baseline text : ("(%1)").arg(_root.unitText) color : Colors.offWhite - font.pixelSize : Fonts.fontPixelContainerUnit + font.pixelSize : _root.unitFontSize font.weight : Font.Thin visible : _root.unitText.length > 0 } Index: sources/gui/qml/compounds/ValueAdjuster.qml =================================================================== diff -u -re49c956894f999f6539b0c404dd1c9b18a76bb4b -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b) +++ sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -20,92 +20,20 @@ import QtQuick.Controls 2.2 Item { id: _root - property real decimal : 0 - property real minimum : 0 - property real maximum : 0 - property real value : 0 + property string extraText : "" + property alias value : _rangedValue.rawValue + property alias minimum : _rangedValue.rawMin + property alias maximum : _rangedValue.rawMax + property alias step : _rangedValue.rawStep + property alias decimal : _rangedValue.precision + property alias canOff : _rangedValue.canOff property real defaultValue: 0 - property real step : 0 property bool isActive : false property bool editable : true - property bool canOff : false property bool canRefresh : false property alias textColor : _text.color property bool grabbed : false - QtObject { id: _private - // fix floating-point precision issue - readonly property int multiplier : Math.pow(10, decimal) - readonly property real stepVal : calculatePrecisionValue(step) - readonly property real minVal : calculatePrecisionValue(minimum) - readonly property real maxVal : calculatePrecisionValue(maximum) - readonly property real val : calculatePrecisionValue(value) - - readonly property bool canIncrement : isActive ? val < calculateMaximum() : true - readonly property bool canDecrement : isActive ? canOff ? val > 0 : - val > calculateMinimum() : true - - // round the value based on the given precision (not step) - function calculatePrecisionValue(value) { - return Math.round(value * _private.multiplier) / _private.multiplier - } - - // calculate the minimum value rounded up to the next higher step size - function calculateMinimum() { - let fixedMin = _private.fixedValue(_private.minVal) - let fixedStep = _private.fixedValue(_private.stepVal) - return (Math.ceil(fixedMin / fixedStep) * fixedStep) / _private.multiplier - } - - // calculate the maximum value rounded down to the next higher step size - function calculateMaximum() { - let fixedMax = _private.fixedValue(_private.maxVal) - let fixedStep = _private.fixedValue(_private.stepVal) - return (Math.floor(fixedMax / fixedStep) * fixedStep) / _private.multiplier - } - - // return a fixed point int from the inputted float (using the set precision) - function fixedValue(value) { - return Math.round(value * _private.multiplier) - } - - function increment() { - if ( ! isActive ) { didActiveChange(true); return } - - let tValue = _private.val - if (canOff && _private.val < _private.minVal) { - tValue = _private.minVal - } - else { - let fixedVal = _private.fixedValue(_private.val) - let fixedStep = _private.fixedValue(_private.stepVal) - let fixedDelta = fixedStep - (fixedVal % fixedStep) - tValue = (fixedVal + fixedDelta) / _private.multiplier - tValue = Math.min(_private.maxVal, tValue) - } - - didChange(tValue) - } - - function decrement() { - if ( ! isActive ) { didActiveChange(true); return } - - let tValue = _private.val - if (canOff && _private.val === _private.minVal) { - tValue = 0 - } - else { - let fixedVal = _private.fixedValue(_private.val) - let fixedStep = _private.fixedValue(_private.stepVal) - let fixedDelta = fixedVal % fixedStep - tValue = (fixedVal - (fixedDelta > 0 ? fixedDelta : fixedStep)) / _private.multiplier - tValue = Math.max(_private.minVal, tValue) - } - - didChange(tValue) - } - } - signal didChange (real vValue) signal didActiveChange (bool vState) @@ -119,13 +47,17 @@ function clear() { didActiveChange(false) } + RangedValue { id: _rangedValue + objectName: "_rangedValue" + } + Text { id: _text anchors.centerIn: parent text : _root.isActive ? _root.canOff ? _root.value === 0 ? qsTr("OFF") : _root.value.toFixed( _root.decimal ) : _root.value.toFixed( _root.decimal ) : Variables.emptyEntry - color : Colors.offWhite + color : _rangedValue.isValueInRange ? Colors.offWhite : Colors.red font.pixelSize : Fonts.fontPixelValueControl } @@ -196,10 +128,12 @@ if (_root.grabbed) { if ( _slider.opacity === 0 ) { _animator.start() } - _slider.pos = Math.max(0, Math.min(1, mouse.x / parent.width)) - let raw = _slider.from + _slider.pos * (_slider.to - _slider.from) - let stepped = Math.round((raw - _slider.from) / _root.step) * _root.step + _slider.from - didChange(stepped) + if (_root.step != 0) { + _slider.pos = Math.max(0, Math.min(1, mouse.x / parent.width)) + let raw = _slider.from + _slider.pos * (_slider.to - _slider.from) + let stepped = Math.round((raw - _slider.from) / _root.step) * _root.step + _slider.from + didChange(stepped) + } } } @@ -229,11 +163,11 @@ leftMargin : Variables.defaultMargin } iconSize : Variables.circleButtonDefaultDiameter - enabled : _private.canDecrement + enabled : _rangedValue.canDecrement visible : _root.editable iconImageSource : enabled ? "qrc:/images/iArrowLeft" : "qrc:/images/iArrowLeftDisabled" - onClicked : _private.decrement() + onClicked : { didChange(_rangedValue.decrementedValue()) } } IconButton { id: _rightArrow @@ -243,10 +177,10 @@ rightMargin : Variables.defaultMargin } iconSize : Variables.circleButtonDefaultDiameter - enabled : _private.canIncrement + enabled : _rangedValue.canIncrement visible : _root.editable iconImageSource : enabled ? "qrc:/images/iArrowRight" : "qrc:/images/iArrowRightDisabled" - onClicked : _private.increment() + onClicked : { didChange(_rangedValue.incrementedValue()) } } } Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r44b18327125389577b34655dfc0d95331c4b8f14 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 44b18327125389577b34655dfc0d95331c4b8f14) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -155,9 +155,7 @@ readonly property int settingsInputWidth : 225 readonly property int settingsNotificationMargin : 10 - readonly property int settingsContentSidesMargin : headerButtonsMargin readonly property int settingsContentBottomMargin : mainMenuHeight + // Alarm Bar height - notificationHeight + // notification Bar height minVGap // Min Gap to give content the min border readonly property int settingsOptionWidth : 550 @@ -192,6 +190,7 @@ readonly property int adjustmentLabelUnitContainerHeight : 75 readonly property int adjustmentLabelUnitContainerWidth : 720 + readonly property int institutionaltContainerHeight : 69 readonly property real sliderDefaultRoundTickMarkDiameter : 5 readonly property int sliderDefaultBodyHeight : 15 @@ -212,6 +211,9 @@ readonly property int defaultButtonHeight : 60 readonly property int defaultButtonWidth : 244 + readonly property int smallDialogHeight : numPadHeight + readonly property int smallDialogWidth : 1000 + // ---------- < PRS > Related Section ---------- // blood flow rate readonly property int bloodFlowMin : 100 // PRS 30 @@ -233,6 +235,7 @@ // Heparin readonly property int heparinPrecision : 1 + readonly property int heparinDeliveryPrecision : 2 // Saline readonly property int salinePrecision : 1 @@ -249,6 +252,9 @@ // Calcium readonly property int calciumPrecision : 2 + // Calcium + readonly property int substitutionPrecision : 1 + function sizeConverted(vSize, vSizePowers, vRound = 2) { return ( vSize / vSizePowers // convert from byte to Giga byte @@ -279,6 +285,8 @@ readonly property string preTreatmentStepLabelPriming : qsTr("PRIME" ) readonly property string preTreatmentStepLabelUltrafiltration : qsTr("BEGIN" ) + // Heparin + readonly property string unitHeparinType : qsTr("IU/mL") // Units readonly property string unitTextPotassium : qsTr("K") readonly property string unitTextCalcium : qsTr("Ca") @@ -287,6 +295,8 @@ readonly property string unitTextUltrafiltrationVolume : unitTextVolume // - Duration/Interval readonly property string unitTextDuration : qsTr("min") + readonly property string unitTextHrs : qsTr("hr") + readonly property string unitTextMins : qsTr("min") // - Flows readonly property string unitTextFlowRate : qsTr("mL/min") readonly property string unitTextDispensingRate : qsTr("mL/hr") Index: sources/gui/qml/main.qml =================================================================== diff -u -r601289deb20f7059b3af5bb19e16f53974262ceb -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/main.qml (.../main.qml) (revision 601289deb20f7059b3af5bb19e16f53974262ceb) +++ sources/gui/qml/main.qml (.../main.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -54,7 +54,10 @@ import VDuetRoWaterDG 0.1 import VCloudSync 0.1 import VHDUsageInfo 0.1 +import VInstitutionalRecord 0.1 import VAdjustmentInstitutionalRecord 0.1 +import VAdvancedInstitutionalRecord 0.1 +import VAdjustmentAdvancedInstitutionalRecord 0.1 // States views import VTDOpMode 0.1 //// ----- @LEAHIZED import VPreTreatmentStates 0.1 @@ -76,6 +79,8 @@ import VTreatmentSaline 0.1 import VTreatmentStop 0.1 import VTreatmentRanges 0.1 +import VTreatmentHeparin 0.1 + // Pre-Treatment import VPreTreatmentAdjustmentInitTreatment 0.1 import VDGFilterFlush 0.1 @@ -109,7 +114,6 @@ import VDDLevel 0.1 import VDDBloodLeak 0.1 // FP Data -import VFPValvesStates 0.1 import VFPROPump 0.1 import VFPPressures 0.1 import VFPLevel 0.1 @@ -182,6 +186,9 @@ VCloudSync { id: vCloudSync } VHDUsageInfo { id: vHDUsageInfo } VAdjustmentInstitutionalRecord { id: vAdjustmentInstitutionalRecord } + VInstitutionalRecord { id: vInstitutionalRecord } + VAdjustmentAdvancedInstitutionalRecord { id: vAdjustmentAdvancedInstitutionalRecord } + VAdvancedInstitutionalRecord { id: vAdvancedInstitutionalRecord } //VAdjustIn // ---- States VTDOpMode { id: vTDOpMode @@ -202,7 +209,7 @@ VTreatmentVitals { id: vTreatmentVitals interval : vTreatmentCreate.bloodPressureMeasureInterval canStartInterval: vTDOpMode.inTreatment && vTDTreatmentStates.txTreatment - enableBPCuff : true // TODO: PRS 343 update with enable/disable Integrated Blood Pressure Cuff + enableBPCuff : vSettings.integratedBPCuff onCanStartIntervalChanged : { if ( vTreatmentVitals.canStartInterval ) { vTreatmentVitals.doTimerStart() } else { vTreatmentVitals.doTimerStop() } @@ -233,6 +240,8 @@ VTreatmentRinseback { id: vTreatmentRinseback } VTreatmentRecirculate { id: vTreatmentRecirculate } VTreatmentStop { id: vTreatmentStop } + VTreatmentHeparin { id: vTreatmentHeparin } + // ---- DD VDGDrainPump { id: vDGDrainPump } VDDHeaters { id: vDDHeaters } @@ -251,7 +260,6 @@ VDDLevel { id: vDDLevel } VDDBloodLeak { id: vDDBloodLeak } // --- FP Data - VFPValvesStates { id: vFPValvesStates } VFPROPump { id: vFPROPump } VFPPressures { id: vFPPressures } VFPLevel { id: vFPLevel } @@ -364,22 +372,24 @@ // } } // keyboard should always be before AlarmItem to not to covet it. - KeyboardItem { id: _keyboard } + KeyboardItem { id: _keyboard } // Dialogs - AcidConcentrateAdjustment { id: _acidConcentrateAdjustment } - HeaderbarPrescription { id: _headerbarPrescription } - HeaderbarWiFi { id: _headerbarWifi } - HeaderbarStorage { id: _headerbarStorage } - HeaderbarSettings { id: _headerbarSettings } - HeaderbarInformation { id: _headerbarInformation } + AcidConcentrateAdjustment { id: _acidConcentrateAdjustment } + HeaderbarPrescription { id: _headerbarPrescription } + HeaderbarWiFi { id: _headerbarWifi } + HeaderbarStorage { id: _headerbarStorage } + HeaderbarSettings { id: _headerbarSettings } + HeaderbarInformation { id: _headerbarInformation } TreatmentAdjustmentVitals { id: _treatmentAdjustmentVitals } - LockDialog { id: _lockDialog } - AlarmItem { id: _alarmItem ; z: 996 } - PowerItem { id: _powerItem ; z: 997 } - ConfirmDialog { id: _confirmDialog ; z: 998 } - DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } + EndTreatmentDialog { id: _endTreatmentDialog } + LockDialog { id: _lockDialog } + AlarmItem { id: _alarmItem ; z: 996 } + PowerItem { id: _powerItem ; z: 997 } + ConfirmDialog { id: _confirmDialog ; z: 998 } + DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } + // Note: NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem // then cannot be anchored. NotificationBar { id: _alarmBar Index: sources/gui/qml/pages/treatment/TreatmentHome.qml =================================================================== diff -u -r56b0b13aa9f9e7ae201bce1843015fe5b4b43d2c -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/pages/treatment/TreatmentHome.qml (.../TreatmentHome.qml) (revision 56b0b13aa9f9e7ae201bce1843015fe5b4b43d2c) +++ sources/gui/qml/pages/treatment/TreatmentHome.qml (.../TreatmentHome.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -37,6 +37,7 @@ signal sectionFlowClicked() signal sectionVitalsClicked() signal sectionPressuresClicked() + signal sectionSalineClicked() signal sectionTimeClicked() signal sectionUltrafiltrationClicked() @@ -71,6 +72,7 @@ objectName : "treatmentSaline" width : cellWidth + Variables.defaultMargin height : cellHeight + onEditClicked: sectionSalineClicked() } TreatmentVitals { id: _treatmentVitals @@ -120,6 +122,76 @@ } } + NotificationBarSmall { id: _notification + objectName : "_notification" + anchors.bottom : parent.bottom + height : 60 + visible : ! _alarmBar.visible && text + + property int source: -1 + + onTextChanged: { + if (text === "") { + source = -1 + } + } + + CloseButton { id: _dismissButton + objectName: "_dismissButton" + anchors { + top: parent.top + bottom: parent.bottom + right: parent.right + margins: 20 + } + width: height + visible: true + onClicked: { _notification.text = "" } + } + } + + Connections { target: vTreatmentAdjustmentBloodFlowRate + function onAdjustmentTriggered ( vValue ) { + if (vTreatmentAdjustmentBloodFlowRate.adjustment_Accepted) { + if (_notification.source === 0) { + _notification.text = "" + } + } + else { + _notification.text = vTreatmentAdjustmentBloodFlowRate.text() + _notification.source = 0 + } + } + } + + Connections { target: vTreatmentAdjustmentDialysateFlowRate + function onAdjustmentTriggered ( vValue ) { + if (vTreatmentAdjustmentDialysateFlowRate.adjustment_Accepted) { + if (_notification.source === 1) { + _notification.text = "" + } + } + else { + _notification.text = vTreatmentAdjustmentDialysateFlowRate.text() + _notification.source = 1 + } + } + } + + Connections { target: vTreatmentAdjustmentDialysateTemperature + function onAdjustmentTriggered ( vValue ) { + if (vTreatmentAdjustmentDialysateTemperature.adjustment_Accepted) { + if (_notification.source === 2) { + _notification.text = "" + } + } + else { + _notification.text = vTreatmentAdjustmentDialysateTemperature.text() + _notification.source = 2 + } + } + } + onVisibleChanged: { if (visible) { _mainMenu.hidden = true Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -rec9c06478bddf4cadf546aa4a49bb18b224f3b50 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision ec9c06478bddf4cadf546aa4a49bb18b224f3b50) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -33,9 +33,10 @@ objectName: "TreatmentStack" onVisibleChanged : { // this should never happen by design, but in tests it can easily happen and will block the screen touch. - _treatmentAdjustmentFlow .close() + _treatmentAdjustmentSetPoints .close() _treatmentAdjustmentVitals .close() _treatmentAdjustmentPressuresLimits .close() + _treatmentAdjustmentBolusVolume .close() _treatmentAdjustmentDuration .close() _treatmentAdjustmentUltrafiltration .close() @@ -77,17 +78,18 @@ Connections { target: _treatmentHome function onSectionFlowClicked ( vValue ) { - _treatmentAdjustmentFlow.open() + _treatmentAdjustmentSetPoints.open() } function onSectionVitalsClicked ( vValue ) { _treatmentAdjustmentVitalsInterval.open() } function onSectionPressuresClicked ( vValue ) { _treatmentAdjustmentPressuresLimits.open() } + function onSectionSalineClicked ( vValue ) { + _treatmentAdjustmentBolusVolume.open() + } function onSectionTimeClicked ( vValue ) { - //DEBUG: console.log("time total minutes: " + vTreatmentTime.time_Total / 60 ) - _treatmentAdjustmentDuration.setDurationValue(vTreatmentTime.time_Total / 60) // minutes => hours _treatmentAdjustmentDuration.open() } function onSectionUltrafiltrationClicked ( vValue ) { @@ -106,54 +108,56 @@ ScreenItem { id: _treatmentHDF } // TODO: make me! //// Treatment Adjustment Dialogs - TreatmentAdjustmentFlow { id: _treatmentAdjustmentFlow } - TreatmentAdjustmentPressuresLimits { id: _treatmentAdjustmentPressuresLimits } + TreatmentAdjustmentSetPoints { id: _treatmentAdjustmentSetPoints } + TreatmentAdjustmentPressuresLimits { id: _treatmentAdjustmentPressuresLimits } + TreatmentAdjustmentBolusVolume { id: _treatmentAdjustmentBolusVolume } TreatmentAdjustmentUltrafiltration { id: _treatmentAdjustmentUltrafiltration } - Connections { target: _treatmentAdjustmentFlow - function onConfirmClicked ( vValue ) { vTreatmentAdjustmentFlows.doAdjustment( - _treatmentAdjustmentFlow.bloodFlowRateValue , - _treatmentAdjustmentFlow.dialysateFlowRateValue ) + Connections { target: _treatmentAdjustmentSetPoints + function onConfirmClicked ( vValue ) { + vTreatmentAdjustmentSetPoints.doAdjustment( + _treatmentAdjustmentSetPoints.bloodFlowRate , + _treatmentAdjustmentSetPoints.dialysateFlowRate , + _treatmentAdjustmentSetPoints.dialysateTemperature , + _treatmentAdjustmentSetPoints.acidConcentrate , + _treatmentAdjustmentSetPoints.bicarbConcentrate + ) } } Connections { target: _treatmentAdjustmentPressuresLimits - function onConfirmClicked ( vValue ) { vTreatmentAdjustmentPressuresLimits.doAdjustment( - _treatmentAdjustmentPressuresLimits.arterialPressureLimitWindow , - _treatmentAdjustmentPressuresLimits.venousPressureLimitWindow , - _treatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc ) + function onConfirmClicked ( vValue ) { + vTreatmentAdjustmentPressuresLimits.doAdjustment( + _treatmentAdjustmentPressuresLimits.arterialPressureLimitWindow , + _treatmentAdjustmentPressuresLimits.venousPressureLimitWindow , + _treatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc , + _treatmentAdjustmentPressuresLimits.tmpLimitWindow + ) } } - - TreatmentAdjustmentDuration { id: _treatmentAdjustmentDuration } - Connections { target: _treatmentAdjustmentDuration - function onConfirmClicked ( vValue ) { vTreatmentAdjustmentDuration.doAdjustment( - _treatmentAdjustmentDuration.durationValue ) + Connections { target: _treatmentAdjustmentBolusVolume + function onConfirmClicked ( vValue ) { + vTreatmentAdjustmentBolusVolume.doAdjustment(_treatmentAdjustmentBolusVolume.fluidBolusVolume) } } + TreatmentAdjustmentDuration { id: _treatmentAdjustmentDuration } + TreatmentAdjustmentVitalsInterval { id: _treatmentAdjustmentVitalsInterval } // ---------- Manages Responses ---------- - Connections { target: vTreatmentAdjustmentDuration + Connections { target: vTreatmentAdjustmentBolusVolume function onAdjustmentTriggered ( vValue ) { - if ( vTreatmentAdjustmentDuration.adjustment_Accepted ) { - vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentDuration.ultrafiltration - _treatmentAdjustmentDuration.accept() - } else { - _treatmentAdjustmentDuration.setDurationValue(vTreatmentAdjustmentDuration.duration); - _treatmentAdjustmentDuration.notification.text = vTreatmentAdjustmentDuration.text(); + if ( vTreatmentAdjustmentBolusVolume.adjustment_Accepted ) { + _treatmentAdjustmentBolusVolume.close() } + else { + _treatmentAdjustmentBolusVolume.notification.text = vTreatmentAdjustmentBolusVolume.text() + } } } Connections { target: vTreatmentAdjustmentPressuresLimits function onAdjustmentTriggered ( vValue ) { - // values have to be update even when rejected HD is reverting back the values. - // if accepted will be updated for later [may need refresh later] - _treatmentAdjustmentPressuresLimits.arterialPressureLimitWindow = vTreatmentAdjustmentPressuresLimits.arterialPressureLimitWindow - _treatmentAdjustmentPressuresLimits.venousPressureLimitWindow = vTreatmentAdjustmentPressuresLimits.venousPressureLimitWindow - _treatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc = vTreatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc - if (vTreatmentAdjustmentPressuresLimits.adjustment_Accepted) { _treatmentAdjustmentPressuresLimits.close() } @@ -163,6 +167,17 @@ } } + Connections { target: vTreatmentAdjustmentSetPoints + function onAdjustmentTriggered ( vValue ) { + if (vTreatmentAdjustmentSetPoints.adjustment_Accepted) { + _treatmentAdjustmentSetPoints.close() + } + else { + _treatmentAdjustmentSetPoints.notification.text = vTreatmentAdjustmentSetPoints.text() + } + } + } + Connections { target: vTDOpMode // The initail screen should be the Blood Prime, since that one is the earlier state in the list. // also since it is being used in two stacks In-Treatment and also in End-Treatmet is has been defined in the MainStack. Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml =================================================================== diff -u --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml (revision 0) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -0,0 +1,156 @@ +/*! + * + * Copyright (c) 2020-2024 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 TreatmentAdjustmentDurationEdit.qml + * \author (last) Stephen Quong + * \date (last) 11-Nov-2025 + * \author (original) Stephen Quong + * \date (original) 11-Nov-2025 + * + */ + +// Qt +import QtQuick 2.12 + +// Project + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" + +/*! + * \brief TreatmentAdjustmentDurationEdit.qml is the screen + * to edit the treatment duration + */ +Item { id: _root + objectName: "_TreatmentAdjustmentDurationEdit" + + QtObject { id: _private + objectName: "_private" + readonly property int ufMultiplier : Math.pow(10, Variables.ultrafiltrationPrecision) + readonly property real ufVolumeRes : calculatePrecisionValue( vTreatmentRanges.ultrafiltrationVolumeRes, ufMultiplier ) + readonly property real ufSetVolume : calculatePrecisionValue( vTreatmentUltrafiltration.setVolume , ufMultiplier ) + readonly property real ufVolumeRemoved : calculatePrecisionValue( vTreatmentUltrafiltration.volumeRemoved , ufMultiplier ) + readonly property int treatmentTimeTotal : vTreatmentTime.time_Total + + function calculatePrecisionValue(value, multiplier) { + return Math.round(value * multiplier) / multiplier + } + } + + signal continueClicked(int vNewTreatmentDuration) + + function reset() { + _newTreatmentDuration.value = _private.treatmentTimeTotal + } + + Row { id: _infoRow + objectName: "_infoRow" + + readonly property int cellWidth: (_infoRow.width - (_infoRow.spacing * 2)) / 3 + + anchors { + top: parent.top + topMargin: Variables.defaultMargin * 2 + left: parent.left + leftMargin: Variables.defaultMargin * 2 + right: parent.right + rightMargin: anchors.leftMargin + } + spacing: Variables.defaultMargin + + LabelUnitText { id: _ufVolumeRemoved + objectName : "_ufVolumeRemoved" + width : _infoRow.cellWidth + label : qsTr("UF Volume Removed") + unit : Variables.unitVolume + value : _private.ufVolumeRemoved + } + + LabelUnitText { id: _ufVolumeGoal + objectName : "_ufVolumeGoal" + width : _infoRow.cellWidth + label : qsTr("UF Volume Goal") + unit : Variables.unitVolume + value : _private.ufSetVolume + } + + LabelUnitText { id: _timeElapsed + objectName : "_timeElapsed" + width : _infoRow.cellWidth + label : qsTr("Treatment Time Elapsed") + unit : Variables.unitTextDuration + value : vTreatmentTime.time_Elapsed + } + } + + Rectangle { id: _divider + objectName: "_divider" + anchors { + top: _infoRow.bottom + topMargin: Variables.defaultMargin * 3 + left: parent.left + leftMargin: 50 + right: parent.right + rightMargin: anchors.leftMargin + } + height: 2 + color: Colors.panelBorderColor + + } + + LabelUnitValueAdjuster { id: _newTreatmentDuration + objectName : "_newTreatmentDuration" + anchors { + top: _divider.bottom + topMargin: _divider.anchors.topMargin + horizontalCenter: parent.horizontalCenter + } + text : qsTr("New Treatment Duration") + titleFontSize : Fonts.fontPixelContainerTitleSmall + unitText : Variables.unitTextDuration + unitFontSize : Fonts.fontPixelContainerUnitSmall + isActive : true + minimum : Math.ceil(vTreatmentTime.time_Elapsed / step) * step + maximum : Math.floor(vTreatmentRanges.treatmentRanges_Duration_Max / step) * step + step : vTreatmentRanges.treatmentDurationRes + + onDidChange : function(vValue) { value = vValue } + onMinimumChanged: { + if (value < minimum) { + value = minimum + } + } + onMaximumChanged: { + if (value > maximum) { + value = maximum + } + } + } + + TouchRect { id: _continueButton + objectName : "_continueButton" + anchors { + bottom : parent.bottom + bottomMargin : Variables.defaultMargin + horizontalCenter: parent.horizontalCenter + } + width : Variables.defaultButtonWidth + height : Variables.defaultButtonHeight + text { + text : qsTr("Continue") + font.weight : Font.Medium + } + isDefault : true + enabled : _newTreatmentDuration.value !== _private.treatmentTimeTotal + + onClicked : { + _root.continueClicked(_newTreatmentDuration.value) + } + } +} Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml =================================================================== diff -u -r16a8f25568b4636ebc31e76c86a8031940cc4ad7 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml (.../TreatmentAdjustmentPressuresLimits.qml) (revision 16a8f25568b4636ebc31e76c86a8031940cc4ad7) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml (.../TreatmentAdjustmentPressuresLimits.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -28,159 +28,121 @@ * To adjust the treatment inline blood pressure ranges of Arterial and venous */ TreatmentAdjustmentBase { id: _root - contentItem.objectName: "TreatmentAdjustmentPressures" //SquishQt testability + objectName: "_TreatmentAdjustmentPressuresLimits" // SquishQt testability - property alias arterialPressureLimitWindow : _arterialWindow .value - property alias venousPressureLimitWindow : _venousWindow .value - property alias venousPressureLimitAsymtrc : _venousAsymmetric .value + readonly property alias arterialPressureLimitWindow : _arterialWindow.value + readonly property alias venousPressureLimitWindow : _venousWindow.value + readonly property alias venousPressureLimitAsymtrc : _venousAsymmetricWindow.value + readonly property alias tmpLimitWindow : _tmpWindow.value - titleText: qsTr("PRESSURES") + titleText: qsTr("Pressure Window Limit Settings") - // Note : The slider values are not bound and will be set by user freely - // and will be used to be sent for adjustment - // if accepted will not changed and - // if rejected then will be reset to the values passed by adjustment response - - // reset the flow values to the current flow values - function currentFlows() { - // if the vTreatmentAdjustmentPressuresLimits.* is not set yet, use the default value - // TODO need to change to use the value used in treatment if these limits are being set in create treatment - _arterialWindow.reset( vTreatmentAdjustmentPressuresLimits.arterialPressureLimitWindow || _arterialWindow.defaultValue) - _venousWindow.reset( vTreatmentAdjustmentPressuresLimits.venousPressureLimitWindow || _venousWindow.defaultValue) - _venousAsymmetric.reset( vTreatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc || _venousAsymmetric.defaultValue) - } - - // reset the flow values to the values of the adjustment response - function resetFlows() { - _arterialWindow.reset( vTreatmentAdjustmentPressuresLimits.arterialPressureLimitWindow ) - _venousWindow.reset( vTreatmentAdjustmentPressuresLimits.venousPressureLimitWindow ) - _venousAsymmetric.reset( vTreatmentAdjustmentPressuresLimits.venousPressureLimitAsymtrc ) - } - onAboutToShow: { - // TODO : When Testing data on Setting screen is removed - // This needs to be moved into the Treatment______.qml - currentFlows() + _arterialWindow.value = vTreatmentPressureOcclusion.arterialPressure + _venousWindow.value = vTreatmentPressureOcclusion.venousPressure + _venousAsymmetricWindow.value = 0 // vTreatmentPressureOcclusion.venousLongPressure + _tmpWindow.value = vTreatmentPressureOcclusion.tmpPressure } - Connections { target: vTreatmentAdjustmentPressuresLimits - function onAdjustmentTriggered ( vValue ) { - if ( vTreatmentAdjustmentPressuresLimits.adjustment_Accepted ) { - accept() - } else { - resetFlows() - console.debug(vTreatmentAdjustmentPressuresLimits.text()) - notification.text = vTreatmentAdjustmentPressuresLimits.text() - } + Item { id: _contentItem + objectName: "_contentItem" + anchors { + top: parent.top + bottom: notification.top + left: parent.left + right: parent.right } - } - component SliderPressure : Item { - property alias title : _title.text - property alias minimum : _slider.minimum - property alias maximum : _slider.maximum - property alias step : _slider.step - property alias value : _slider.value - property alias defaultValue : _slider.defaultValue - property alias sliderWidth : _slider.width - property int hPadding : 30 + Item { id: _contentArea + objectName: "_contentArea" + anchors { + top: parent.top + bottom: _confirmButton.top + left: parent.left + right: parent.right + } - function reset(vValue) { - _slider.reset(vValue) - } + Column { id: _controlColumn + objectName: "_controlColumn" + anchors.centerIn: parent + spacing: Variables.defaultMargin - height : 150 - width : parent.width - hPadding * 2 + LabelUnitValueAdjuster { id: _arterialWindow + objectName : "_arterialWindow" + text : qsTr("Arterial Window") + titleFontSize : Fonts.fontPixelContainerTitleSmall + unitText : Variables.unitTextPressure + unitFontSize : Fonts.fontPixelContainerUnitSmall + isActive : true + minimum : vTreatmentPressureOcclusion.arterialMin + maximum : vTreatmentPressureOcclusion.arterialMax + step : vTreatmentRanges.arterialPressureLimitWindowRes - Text { id: _title - height : 50 - anchors.top : parent.top - anchors.left : parent.left - horizontalAlignment : Text.AlignLeft - font.pixelSize : Fonts.fontPixelPresseuresLabel - color : Colors.textMain - } + onDidChange : function(vValue) { value = vValue } + } - Text { id: _value - width : 120 - anchors.baseline : _title.baseline - anchors.right : parent.right - font.pixelSize : Fonts.fontPixelFluidUnit - color : Colors.textMain - text : _slider.value.toFixed(0) + " " + Variables.unitTextBloodPressure - horizontalAlignment : Text.AlignRight - } + LabelUnitValueAdjuster { id: _venousWindow + objectName : "_venousWindow" + text : qsTr("Venous Window") + titleFontSize : _arterialWindow.titleFontSize + unitText : Variables.unitTextPressure + unitFontSize : _arterialWindow.unitFontSize + isActive : true + minimum : vTreatmentPressureOcclusion.venousMin + maximum : vTreatmentPressureOcclusion.venousMax + step : vTreatmentRanges.venousPressureLimitWindowRes - Slider { id : _slider - anchors.top : _title.bottom - anchors.topMargin : 15 - anchors.horizontalCenter: parent.horizontalCenter - width : 700 - height : Variables.sliderDefaultBodyHeight - diameter : Variables.progressbarHandler - touchMargin : Variables.sliderDefaultBodyHeight - ticks : true - onValueChanged : reset( value ) - } + onDidChange : function(vValue) { value = vValue } + } - SliderArrows{ id : _sliderArrows - anchors.left : _slider.right - anchors.leftMargin : 30 - anchors.verticalCenter : _slider.verticalCenter - onIncrementValue : _slider.incrementValue(true) - onDecrementValue : _slider.decrementValue(true) - } - } + LabelUnitValueAdjuster { id: _venousAsymmetricWindow + objectName : "_venousAsymmetricWindow" + text : qsTr("Venous Asymmetric Window") + titleFontSize : _arterialWindow.titleFontSize + unitText : Variables.unitTextPressure + unitFontSize : _arterialWindow.unitFontSize + isActive : true + minimum : vTreatmentRanges.venousPressureLimitAsymtrcMin + maximum : vTreatmentRanges.venousPressureLimitAsymtrcMax + step : vTreatmentRanges.venousPressureLimitAsymtrcRes - SliderPressure { id: _arterialWindow - objectName : "_arterialWindow" - anchors { - top : parent.top - topMargin : 125 - horizontalCenter: parent.horizontalCenter - } - title : qsTr("Arterial Window") - minimum : vTreatmentRanges.arterialPressureLimitWindowMin - maximum : vTreatmentRanges.arterialPressureLimitWindowMax - step : vTreatmentRanges.arterialPressureLimitWindowRes - value : vTreatmentRanges.arterialPressureLimitWindowDef - defaultValue : vTreatmentRanges.arterialPressureLimitWindowDef - } + onDidChange : function(vValue) { value = vValue } + } - Line { id: _divider - anchors.horizontalCenter: parent.horizontalCenter - length : _root.width - 100 - color : Colors.separatorLine - anchors.top: _arterialWindow.bottom - anchors.topMargin: 15 - } + LabelUnitValueAdjuster { id: _tmpWindow + objectName : "_tmpWindow" + text : qsTr("TMP Window") + titleFontSize : _arterialWindow.titleFontSize + unitText : Variables.unitTextPressure + unitFontSize : _arterialWindow.unitFontSize + isActive : true + minimum : vTreatmentPressureOcclusion.tmpMin + maximum : vTreatmentPressureOcclusion.tmpMax + step : vTreatmentRanges.transmembranePressureLimitWindowRes - SliderPressure { id: _venousWindow - objectName : "_venousWindow" - anchors { - top : _divider.bottom - topMargin : 30 - horizontalCenter: parent.horizontalCenter + onDidChange : function(vValue) { value = vValue } + } + } } - title : qsTr("Venous Window") - minimum : vTreatmentRanges.venousPressureLimitWindowMin - maximum : vTreatmentRanges.venousPressureLimitWindowMax - step : vTreatmentRanges.venousPressureLimitWindowRes - value : vTreatmentRanges.venousPressureLimitWindowDef - defaultValue : vTreatmentRanges.venousPressureLimitWindowDef - } - SliderPressure { id: _venousAsymmetric - objectName : "_venousAsymmetric" - anchors { - top : _venousWindow.bottom - horizontalCenter: parent.horizontalCenter + TouchRect { id: _confirmButton + objectName : "_confirmButton" + anchors { + bottom : parent.bottom + bottomMargin : Variables.defaultMargin + horizontalCenter: parent.horizontalCenter + } + width : Variables.defaultButtonWidth + height : Variables.defaultButtonHeight + text { + text : qsTr("Confirm") + font.weight : Font.Medium + } + isDefault : true + + onClicked : { + _root.confirmClicked() + } } - title : qsTr("Venous Asymmetric") - minimum : vTreatmentRanges.venousPressureLimitAsymtrcMin - maximum : vTreatmentRanges.venousPressureLimitAsymtrcMax - step : vTreatmentRanges.venousPressureLimitAsymtrcRes - value : vTreatmentRanges.venousPressureLimitAsymtrcDef - defaultValue : vTreatmentRanges.venousPressureLimitAsymtrcDef } } Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml =================================================================== diff -u --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml (revision 0) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -0,0 +1,273 @@ +/*! + * + * Copyright (c) 2020-2024 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 TreatmentAdjustmentFlow.qml + * \author (last) Behrouz NematiPour + * \date (last) 11-Apr-2023 + * \author (original) Behrouz NematiPour + * \date (original) 22-Mar-2020 + * + */ + +// Qt +import QtQuick 2.12 + +// Project + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" + +/*! + * \brief TreatmentAdjustmentFlow.qml is the screen + * To adjust the treatment blood/dialysate flow + */ +TreatmentAdjustmentBase { id: _root + objectName: "_TreatmentAdjustmentFlow" // SquishQt testability + + readonly property alias bloodFlowRate : _bloodFlowRate.value + readonly property alias dialysateFlowRate : _dialysateFlowRate.value + readonly property alias dialysateTemperature : _dialysateTemperature.value + readonly property alias acidConcentrate : _acidConcentrateComboBox.currentIndex + readonly property alias bicarbConcentrate : _bicarbConcentrateComboBox.currentIndex + + width : 1540 + height : 865 + titleText : qsTr("Treatment Parameters") + + QtObject { id: _private + objectName: "_private" + readonly property int containerWidth : (_root.width - (Variables.defaultMargin * 5))/2 + readonly property int titleFontPixelSize : Fonts.fontPixelContainerTitleSmall + readonly property int unitFontPixelSize : Fonts.fontPixelContainerUnitSmall + } + + onAboutToShow: { + _bloodFlowRate.value = vTreatmentParametersSetPoint.bloodFlow + _dialysateFlowRate.value = vTreatmentParametersSetPoint.dialysateFlow.toFixed(Variables.dialysateFlowPrecision) + _dialysateTemperature.value = Variables.notSetVariable(vTreatmentParametersSetPoint.dialysateTemp.toFixed(Variables.dialysateTempPrecision)) + } + + Connections { target: _acidConcentrateAdjustment + function onAccepted () { + vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.find(_acidConcentrateAdjustment.adjustment) + _acidConcentrateComboBox.currentIndex = vTreatmentCreate.acidConcentrate + } + } + + Item { id: _contentItem + objectName: "_contentItem" + anchors { + top: parent.top + bottom: notification.top + left: parent.left + right: parent.right + } + + Item { id: _contentArea + objectName: "_contentArea" + anchors { + top : parent.top + bottom : _confirmButton.top + left : parent.left + leftMargin : Variables.defaultMargin * 2 + right : parent.right + rightMargin : anchors.leftMargin + } + + Row { id: _controlRow + objectName : "_controlRow" + anchors.centerIn : parent + spacing : Variables.defaultMargin + + Column { id: _controlLeftColumn + objectName : "_controlLeftColumn" + spacing : Variables.defaultMargin + + LabelUnitValueAdjuster { id: _bloodFlowRate + objectName : "_bloodFlowRate" + width : _private.containerWidth + text : qsTr("Blood Flow Rate") + titleFontSize : _private.titleFontPixelSize + unitText : Variables.unitTextFlowRate + unitFontSize : _private.unitFontPixelSize + isActive : true + decimal : Variables.bloodFlowPrecision + minimum : vTreatmentRanges.bloodFlowRateMin + maximum : vTreatmentRanges.bloodFlowRateMax + step : vTreatmentRanges.bloodFlowRateRes + + onDidChange : function(vValue) { value = vValue } + } + + LabelUnitValueAdjuster { id: _dialysateFlowRate + objectName : "_dialysateFlowRate" + width : _private.containerWidth + text : qsTr("Dialysate Flow Rate") + titleFontSize : _private.titleFontPixelSize + unitText : Variables.unitTextFlowRate + unitFontSize : _private.unitFontPixelSize + isActive : true + decimal : Variables.dialysateFlowPrecision + minimum : vTreatmentRanges.dialysateFlowRateMin + maximum : vTreatmentRanges.dialysateFlowRateMax + step : vTreatmentRanges.dialysateFlowRateRes + canOff : true + + onDidChange : function(vValue) { value = vValue } + } + + LabelUnitValueAdjuster { id: _dialysateTemperature + objectName : "_dialysateTemperature" + width : _private.containerWidth + text : qsTr("Dialysate Temperature") + titleFontSize : _private.titleFontPixelSize + unitText : Variables.unitTextTemperature + unitFontSize : _private.unitFontPixelSize + isActive : true + decimal : Variables.dialysateTempPrecision + minimum : vTreatmentRanges.dialysateTempMin + maximum : vTreatmentRanges.dialysateTempMax + step : vTreatmentRanges.dialysateTempRes + + onDidChange : function(vValue) { value = vValue } + } + } + + Column { id: _controlRightColumn + objectName: "_controlRightColumn" + spacing: Variables.defaultMargin + + LabelUnitContainer { id: _acidConcentrate + objectName : "_acidConcentrate" + width : _private.containerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Acid Concentrate") + titleFontSize : _private.titleFontPixelSize + unitFontSize : _private.unitFontPixelSize + showEdit : true + onEditClicked : _acidConcentrateAdjustment.open() + + contentItem: BaseComboBox { id: _acidConcentrateComboBox + objectName : "_acidConcentrateComboBox" + anchors { + topMargin : Variables.defaultMargin / 2 + bottomMargin: anchors.topMargin + leftMargin : Variables.defaultMargin * 2 + rightMargin : anchors.leftMargin + } + font.pixelSize : _private.titleFontPixelSize + isActive : vTreatmentCreate.acidConcentrateSet + currentIndex : vTreatmentCreate.acidConcentrate + model : vTreatmentRanges.acidConcentrateOptions + + onClear : { + vTreatmentRanges.doClearAcidConcentrate(vTreatmentCreate.acidConcentrateSet) + vTreatmentCreate.acidConcentrateSet = false + } + + onActivated : { + if ( ! _acidConcentrate.valid ) { vTreatmentCreate.acidConcentrateRejectReason = Variables.noRejectReason } + vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.currentIndex + vTreatmentCreate.acidConcentrateSet = true + } + } + } + + LabelUnitContainer { id: _bicarbConcentrate + objectName : "_bicarbConcentrate" + width : _private.containerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Bicarbonate Concentrate") + titleFontSize : _private.titleFontPixelSize + unitFontSize : _private.unitFontPixelSize + + contentItem: BaseComboBox { id: _bicarbConcentrateComboBox + objectName : "_bicarbConcentrateComboBox" + anchors { + topMargin : Variables.defaultMargin / 2 + bottomMargin: anchors.topMargin + leftMargin : Variables.defaultMargin * 2 + rightMargin : anchors.leftMargin + } + font.pixelSize : _private.titleFontPixelSize + isActive : vTreatmentCreate.bicarbonateConcentrateSet + currentIndex : vTreatmentCreate.bicarbonateConcentrate + model : vTreatmentRanges.bicarbonateConcentrateOptions + onClear : vTreatmentCreate.bicarbonateConcentrateSet = false + + onActivated : { + if ( ! _bicarbConcentrate.valid ) { vTreatmentCreate.bicarbonateConcentrateRejectReason = Variables.noRejectReason } + vTreatmentCreate.bicarbonateConcentrate = _bicarbConcentrateComboBox.currentIndex + vTreatmentCreate.bicarbonateConcentrateSet = true + } + } + } + + LabelUnitContainer { id: _theoreticalConductivity + objectName : "_theoreticalConductivity" + width : _private.containerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Theoretical Conductivity") + titleFontSize : _private.titleFontPixelSize + unitText : Variables.unitTextDialCond + unitFontSize : _private.unitFontPixelSize + + contentItem: Text { id: _theoreticalConductivityText + objectName : "_theoreticalConductivityText" + anchors.centerIn : parent + width : contentWidth + height : contentHeight + color : Colors.offWhite + font.pixelSize : Fonts.fontPixelValueControl + text : Variables.emptyEntry + } + } + + LabelUnitContainer { id: _independentConductivity + objectName : "_independentConductivity" + width : _private.containerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Independent Conductivity Reading") + titleFontSize : _private.titleFontPixelSize + unitText : Variables.unitTextDialCond + unitFontSize : _private.unitFontPixelSize + + contentItem: Text { id: _independentConductivityText + objectName : "_independentConductivityText" + anchors.centerIn : parent + width : contentWidth + height : contentHeight + color : Colors.offWhite + font.pixelSize : Fonts.fontPixelValueControl + text : Variables.emptyEntry + } + } + } + } + } + + TouchRect { id: _confirmButton + objectName : "_confirmButton" + anchors { + bottom : parent.bottom + bottomMargin : Variables.defaultMargin + horizontalCenter: parent.horizontalCenter + } + width : Variables.defaultButtonWidth + height : Variables.defaultButtonHeight + text { + text : qsTr("Confirm") + font.weight : Font.Medium + } + isDefault : true + + onClicked : { _root.confirmClicked() } + } + } +} Index: sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml =================================================================== diff -u -ra42e662e05949b63abd4c1e51b814ce476c107d4 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml (.../TreatmentFlows.qml) (revision a42e662e05949b63abd4c1e51b814ce476c107d4) +++ sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml (.../TreatmentFlows.qml) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -27,7 +27,7 @@ * \brief Treatment Screen Flows section */ TreatmentSection { id: _root - property bool editEnabled : header.editEnabled + property bool editEnabled : true header.title : qsTr("Treatment Parameters") header.showLock : true @@ -52,7 +52,7 @@ maximum : vTreatmentRanges.bloodFlowRateMax step : vTreatmentRanges.bloodFlowRateRes unitText : Variables.unitTextFlowRate - buttonsEnabled : editEnabled + buttonsEnabled : editEnabled // LEAHI-PRS-376 onIncrement : function(newValue) { vTreatmentAdjustmentBloodFlowRate.doAdjustment(newValue) } onDecrement : function(newValue) { vTreatmentAdjustmentBloodFlowRate.doAdjustment(newValue) } @@ -69,7 +69,7 @@ maximum : vTreatmentRanges.dialysateFlowRateMax step : vTreatmentRanges.dialysateFlowRateRes unitText : Variables.unitTextFlowRate - buttonsEnabled : editEnabled + buttonsEnabled : isTreatmentEnd ? false : editEnabled // LEAHI-PRS-376 extraText : vTreatmentParametersSetPoint.dialysateFlow === 0 ? qsTr("OFF") : ! vDDGenDialysate.isDialGood ? qsTr("Bypass") : "" @@ -89,7 +89,7 @@ maximum : vTreatmentRanges.dialysateTempMax step : vTreatmentRanges.dialysateTempRes unitText : Variables.unitTextTemperature - buttonsEnabled : editEnabled + buttonsEnabled : isTreatmentEnd ? false : editEnabled // LEAHI-PRS-376 onIncrement : function(newValue) { vTreatmentAdjustmentDialysateTemperature.doAdjustment(newValue) } onDecrement : function(newValue) { vTreatmentAdjustmentDialysateTemperature.doAdjustment(newValue) } Index: sources/model/MModel.h =================================================================== diff -u -r62797b3c6e0539e22a04404e16daa7c4465e178f -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/model/MModel.h (.../MModel.h) (revision 62797b3c6e0539e22a04404e16daa7c4465e178f) +++ sources/model/MModel.h (.../MModel.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -94,10 +94,13 @@ #include "MAdjustHDServiceModeResponse.h" #include "MAdjustHDServiceDatesResponse.h" #include "MAdjustDGServiceDatesResponse.h" -#include "MAdjustHDDateTimeResponse.h" -#include "MAdjustDGDateTimeResponse.h" +#include "MAdjustTDDateTimeResponse.h" +#include "MAdjustDDDateTimeResponse.h" #include "MDuetRoWaterDG.h" -#include "MAdjustHDInstitutionalRecordResponse.h" +#include "MAdjustTDInstitutionalRecordResponse.h" +#include "MTDInstitutionalRecordResponse.h" +#include "MAdjustTDAdvancedInstitutionalRecordResponse.h" +#include "MTDAdvancedInstitutionalRecordResponse.h" // DG Data Messages #include "MDGDrainPumpData.h" @@ -118,7 +121,6 @@ #include "MDDBloodLeakData.h" // FP Data Messages -#include "MFPValvesStatesData.h" #include "MFPROPumpData.h" #include "MFPPressuresData.h" #include "MFPLevelData.h" @@ -340,6 +342,8 @@ REGISTER_METATYPE( DeviceWifiInfoResponseData ) \ REGISTER_METATYPE( DeviceWifiConnectRequestData ) \ REGISTER_METATYPE( DeviceWifiConnectResponseData ) \ + REGISTER_METATYPE( DeviceDateTimeRequestData ) \ + REGISTER_METATYPE( DeviceDateTimeResponseData ) \ /* Settings */ \ REGISTER_METATYPE( SettingsData ) \ REGISTER_METATYPE( BluetoothData ) \ @@ -404,7 +408,6 @@ REGISTER_METATYPE( DDLevelData ) \ REGISTER_METATYPE( DDBloodLeakData ) \ /* FP Data */ \ - REGISTER_METATYPE( FPValvesStatesData ) \ REGISTER_METATYPE( FPROPumpData ) \ REGISTER_METATYPE( FPPressuresData ) \ REGISTER_METATYPE( FPLevelData ) \ @@ -473,8 +476,8 @@ REGISTER_METATYPE( AdjustVersionsRequestData ) \ REGISTER_METATYPE( AdjustServiceModeRequestData ) \ REGISTER_METATYPE( AdjustServiceDatesRequestData ) \ - REGISTER_METATYPE( AdjustHDDateTimeRequestData ) \ - REGISTER_METATYPE( AdjustDGDateTimeRequestData ) \ + REGISTER_METATYPE( AdjustTDDateTimeRequestData ) \ + REGISTER_METATYPE( AdjustDDDateTimeRequestData ) \ REGISTER_METATYPE( AdjustHDAlarmVolumeRequestData ) \ \ /* Response */ \ @@ -524,13 +527,19 @@ REGISTER_METATYPE( AdjustServiceModeResponseData ) \ REGISTER_METATYPE( AdjustServiceDatesHDResponseData ) \ REGISTER_METATYPE( AdjustServiceDatesDGResponseData ) \ - REGISTER_METATYPE( AdjustHDDateTimeResponseData ) \ - REGISTER_METATYPE( AdjustDGDateTimeResponseData ) \ + REGISTER_METATYPE( AdjustTDDateTimeResponseData ) \ + REGISTER_METATYPE( AdjustDDDateTimeResponseData ) \ /* Alarms - Active List Response */ \ REGISTER_METATYPE( AlarmActiveListResponseData ) \ REGISTER_METATYPE( AdjustHDAlarmVolumeResponseData ) \ REGISTER_METATYPE( AdjustInstitutionalRequestData ) \ REGISTER_METATYPE( AdjustInstitutionalRecordResponseData ) \ + REGISTER_METATYPE( InstitutionalRequestData ) \ + REGISTER_METATYPE( InstitutionalRecordResponseData ) \ + REGISTER_METATYPE( AdjustAdvancedInstitutionalRequestData ) \ + REGISTER_METATYPE( AdjustAdvancedInstitutionalRecordResponseData ) \ + REGISTER_METATYPE( AdvancedInstitutionalRequestData ) \ + REGISTER_METATYPE( AdvancedInstitutionalRecordResponseData ) \ /* HD reset in service mode */ \ REGISTER_METATYPE( AdjustHDResetInSrvcRequestData ) \ @@ -622,7 +631,6 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDLevelData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDBloodLeakData ) \ /* FP Data */ \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, FPValvesStatesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, FPROPumpData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, FPPressuresData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, FPLevelData ) \ @@ -687,15 +695,17 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustServiceModeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustServiceDatesHDResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustServiceDatesDGResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHDDateTimeResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGDateTimeResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustTDDateTimeResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDDDateTimeResponseData ) \ /* Alarms - Active List Response */ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmActiveListResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHDAlarmVolumeResponseData ) \ /* Settings - HD Data Response */ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDUsageInfoResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustInstitutionalRecordResponseData ) \ - + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, InstitutionalRecordResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustAdvancedInstitutionalRecordResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdvancedInstitutionalRecordResponseData ) \ // /* Request */ ---------------------------------------------------------// #define ADJUST_TRANSMT_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ /* CONFIRM */ \ @@ -728,8 +738,8 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustServiceModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustServiceDatesRequestData ) \ - ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHDDateTimeRequestData ) \ - ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustTDDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHDAlarmVolumeRequestData ) \ /* Post-Treatment */ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustPatientDisconnectionNotifyRequestData ) \ @@ -760,6 +770,9 @@ /* Settings - HD Info */ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, HDUsageInfoRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, InstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustAdvancedInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdvancedInstitutionalRequestData ) \ /* HD reset in service mode */ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHDResetInSrvcRequestData ) \ @@ -854,7 +867,6 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( DDLevelData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DDBloodLeakData ) \ /* FP Data */ \ - ACTION_RECEIVE_BRIDGE_DEFINITION( FPValvesStatesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( FPROPumpData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( FPPressuresData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( FPLevelData ) \ @@ -919,16 +931,18 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustServiceModeResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustServiceDatesHDResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustServiceDatesDGResponseData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustHDDateTimeResponseData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDGDateTimeResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustTDDateTimeResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDDDateTimeResponseData ) \ /* Alarms - Active List Response */ \ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmActiveListResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustHDAlarmVolumeResponseData ) \ /* Settings - HD Data Response */ \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDUsageInfoResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustInstitutionalRecordResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( InstitutionalRecordResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustAdvancedInstitutionalRecordResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdvancedInstitutionalRecordResponseData ) \ - #define ADJUST_TRANSMT_MODEL_BRIDGE_DEFINITIONS \ /* Request --------------------------------------------------------- */ \ /* CONFIRM */ \ @@ -983,8 +997,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustServiceModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustServiceDatesRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHDDateTimeRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustTDDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHDAlarmVolumeRequestData ) \ /* Alarms */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmSilenceRequestData ) \ @@ -993,6 +1007,9 @@ /* Settings - HD Info */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( HDUsageInfoRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( InstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustAdvancedInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdvancedInstitutionalRequestData ) \ /* HD reset in service mode */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHDResetInSrvcRequestData ) \ @@ -1050,8 +1067,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustServiceModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustServiceDatesRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHDDateTimeRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustTDDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHDAlarmVolumeRequestData ) \ /* Alarms */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmSilenceRequestData ) \ @@ -1060,6 +1077,9 @@ /* Settings - HD Info */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( HDUsageInfoRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( InstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustAdvancedInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdvancedInstitutionalRequestData ) \ /* HD reset in service mode */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHDResetInSrvcRequestData ) \ @@ -1117,8 +1137,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustVersionsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustServiceModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustServiceDatesRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHDDateTimeRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDGDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustTDDateTimeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHDAlarmVolumeRequestData ) \ /* Alarms */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmSilenceRequestData ) \ @@ -1127,6 +1147,9 @@ /* Settings - HD Info */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( HDUsageInfoRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( InstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustAdvancedInstitutionalRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdvancedInstitutionalRequestData ) \ /* HD reset in service mode */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHDResetInSrvcRequestData ) \ @@ -1205,7 +1228,6 @@ ACTION_RECEIVE_SIGNAL( DDLevelData ) \ ACTION_RECEIVE_SIGNAL( DDBloodLeakData ) \ /* FP Data */ \ - ACTION_RECEIVE_SIGNAL( FPValvesStatesData ) \ ACTION_RECEIVE_SIGNAL( FPROPumpData ) \ ACTION_RECEIVE_SIGNAL( FPPressuresData ) \ ACTION_RECEIVE_SIGNAL( FPLevelData ) \ @@ -1270,16 +1292,18 @@ ACTION_RECEIVE_SIGNAL( AdjustServiceModeResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustServiceDatesHDResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustServiceDatesDGResponseData ) \ - ACTION_RECEIVE_SIGNAL( AdjustHDDateTimeResponseData ) \ - ACTION_RECEIVE_SIGNAL( AdjustDGDateTimeResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustTDDateTimeResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustDDDateTimeResponseData ) \ /* Alarms */ \ ACTION_RECEIVE_SIGNAL( AlarmActiveListResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustHDAlarmVolumeResponseData ) \ /* Settings - HD data response */ \ ACTION_RECEIVE_SIGNAL( HDUsageInfoResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustInstitutionalRecordResponseData ) \ + ACTION_RECEIVE_SIGNAL( InstitutionalRecordResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustAdvancedInstitutionalRecordResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdvancedInstitutionalRecordResponseData ) \ - //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// Index: sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h =================================================================== diff -u -r148844d868453927c9dd3f9c47e79d829c08d303 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 148844d868453927c9dd3f9c47e79d829c08d303) +++ sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -117,30 +117,164 @@ }; /*! - * \brief The MAdjustDurationReq class + * \brief The MAdjustDurationEditReq class * \details The treatment duration change request model * - * | MSG | CAN ID | Type | Ack | Src | Dst | Description | - * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------: | - * |0x1600| 0x100 | Req | Y | UI | HD | Treatment Duration Change Request | + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------------------:| + * |0x7600| 0x100 | Req | Y | UI | HD | Duration Edit Request | * * | Payload || * | || * | #1:(U32) | \ref duration | * */ -class MAdjustDurationReq : public MModel { +class MAdjustDurationEditReq : public MModel { public: quint32 duration = 0; + QString toString() { return toString({duration}); } static QString toString(const QVariantList &vParameters) { - return MModel::toString("AdjustDuration", vParameters); + return MModel::toString("AdjustDurationEdit", vParameters); } }; /*! + * \brief The MAdjustDurationConfirmReq class + * \details The treatment duration change request model + * + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:---------------------------:| + * |0x7800| 0x100 | Req | Y | UI | HD | Duration Confirm Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref duration | + * + */ +class MAdjustDurationConfirmReq : public MModel { +public: + quint32 duration = 0; + + QString toString() { + return toString({duration}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustDurationConfirm", vParameters); + } +}; + +/*! + * \brief The MAdjustSetPointsReq class + * \details The treatment duration change request model + * + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-------------------:| + * |0x7A00| 0x100 | Req | Y | UI | HD | Set Points Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref bloodFlowRate | + * | #2:(U32) | \ref dialysateFlowRate | + * | #3:(F32) | \ref dialysateTemperature | + * | #4:(U32) | \ref acidConcentrate | + * | #5:(U32) | \ref bicarbConcentrate | + * + */ +class MAdjustSetPointsReq : public MModel { +public: + quint32 bloodFlowRate = 0; + quint32 dialysateFlowRate = 0; + float dialysateTemperature = 0; + quint32 acidConcentrate = 0; + quint32 bicarbConcentrate = 0; + + QString toString() { + return toString({bloodFlowRate, dialysateFlowRate, dialysateTemperature, acidConcentrate, bicarbConcentrate}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustSetPointsReq", vParameters); + } +}; + +/*! + * \brief The MAdjustBloodFlowRateReq class + * \details The treatment duration change request model + * + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------------------:| + * |0x7C00| 0x100 | Req | Y | UI | HD | Blood Flow Rate Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref bloodFlowRate | + * + */ +class MAdjustBloodFlowRateReq : public MModel { +public: + quint32 bloodFlowRate = 0; + + QString toString() { + return toString({bloodFlowRate}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustBloodFlowRateReq", vParameters); + } +}; + +/*! + * \brief The MAdjustDialysateFlowRateReq class + * \details The treatment duration change request model + * + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:---------------------------:| + * |0x7E00| 0x100 | Req | Y | UI | HD | Dialysate Flow Rate Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref dialysateFlowRate | + * + */ +class MAdjustDialysateFlowRateReq : public MModel { +public: + quint32 dialysateFlowRate = 0; + + QString toString() { + return toString({dialysateFlowRate}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustDialysateFlowRateReq", vParameters); + } +}; + +/*! + * \brief The MAdjustDialysateTemperatureReq class + * \details The treatment duration change request model + * + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-------------------------------:| + * |0x8000| 0x100 | Req | Y | UI | HD | Dialysate Temperature Request | + * + * | Payload || + * | || + * | #1:(F32) | \ref dialysateTemperature | + * + */ +class MAdjustDialysateTemperatureReq : public MModel { +public: + float dialysateTemperature = 0; + + QString toString() { + return toString({dialysateTemperature}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustDialysateTemperatureReq", vParameters); + } +}; + +/*! * \brief The MAdjustUltrafiltrationStateReq class * \details The ultrafiltration pause/resume request model * @@ -309,22 +443,25 @@ * | #1:(S32) | \ref mArterialPressureLimitWindow | (mmHg) | * | #2:(S32) | \ref mVenousPressureLimitWindow | (mmHg) | * | #3:(S32) | \ref mVenousPressureLimitAsymtrc | (mmHg) | + * | #4:(S32) | \ref mTmpPressureLimitWindow | (mmHg) | * * \sa MPressureOcclusion : Pressure data broadcast * \sa MAdjustPressuresResponse : Pressures limit adjustment response * */ class MAdjustPressuresLimitsReq : public MModel { public: - qint32 mArterialPressureLimitWindow = 0; ///< (S32) Arterial Pressure Limit Window (mmHg) - qint32 mVenousPressureLimitWindow = 0; ///< (S32) Venous Pressure Limit Window (mmHg) - qint32 mVenousPressureLimitAsymtrc = 0; ///< (S32) Venous Pressure Limit Asymmetric(mmHg) + qint32 mArterialPressureLimitWindow = 0; ///< (S32) Arterial Pressure Limit Window (mmHg) + qint32 mVenousPressureLimitWindow = 0; ///< (S32) Venous Pressure Limit Window (mmHg) + qint32 mVenousPressureLimitAsymtrc = 0; ///< (S32) Venous Pressure Limit Asymmetric (mmHg) + qint32 mTmpLimitWindow = 0; ///< (S32) Transmembrane Pressure Limit Window (mmHg) QString toString() { return toString ({ mArterialPressureLimitWindow , mVenousPressureLimitWindow , - mVenousPressureLimitAsymtrc + mVenousPressureLimitAsymtrc , + mTmpLimitWindow }); } static QString toString(const QVariantList &vParameters) { @@ -333,6 +470,34 @@ }; /*! + * \brief The MAdjustBolusVolumeReq class + * \details The model to request bolus volume adjustment + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:--------------------:| + * |0x7400| 0x100 | Req | Y | UI | HD | Bolus Volume Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref bolusVolume | + * + * \sa Adjustment + * \sa MTreatmentBolusVolume : BolusVolume Bolus Data + * \sa MAdjustBolusVolumeResponse : BolusVolume Bolus Response + * + */ +class MAdjustBolusVolumeReq : public MModel { +public: + quint32 mBolusVolume = 0; ///< (U32) Bolus Volume (mL) + QString toString() { + return toString({mBolusVolume}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustBolusVolume", vParameters); + } +}; + +/*! * \brief The MAdjustRinsebackReq class * \details The model to request the Rinseback state * @@ -463,7 +628,12 @@ typedef Model:: MDuetConfirmUIr DuetConfirmUIrData; typedef Model:: MAdjustPowerOffReq AdjustPowerOffRequestData; typedef Model:: MAdjustBloodDialysateReq AdjustBloodDialysateRequestData; -typedef Model:: MAdjustDurationReq AdjustDurationRequestData; +typedef Model:: MAdjustDurationEditReq AdjustDurationEditRequestData; +typedef Model:: MAdjustDurationConfirmReq AdjustDurationConfirmRequestData; +typedef Model:: MAdjustSetPointsReq AdjustSetPointsRequestData; +typedef Model:: MAdjustBloodFlowRateReq AdjustBloodFlowRateRequestData; +typedef Model:: MAdjustDialysateFlowRateReq AdjustDialysateFlowRateRequestData; +typedef Model:: MAdjustDialysateTemperatureReq AdjustDialysateTemperatureRequestData; typedef Model:: MAdjustUltrafiltrationStateReq AdjustUltrafiltrationStateRequestData; typedef Model:: MAdjustUltrafiltrationEditReq AdjustUltrafiltrationEditRequestData; typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; @@ -474,6 +644,7 @@ typedef Model:: MAdjustRecirculateReq AdjustRecirculateRequestData; typedef Model:: MAdjustTreatmentEndReq AdjustTreatmentEndRequestData; typedef Model:: MAdjustPressuresLimitsReq AdjustPressuresLimitsRequestData; +typedef Model:: MAdjustBolusVolumeReq AdjustBolusVolumeRequestData; // Alarms typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; typedef Model:: MAlarmUserActionReq AlarmUserActionRequestData; Index: sources/view/VView.h =================================================================== diff -u -rc54863854ab063797737c6b3753e00115c0bbd11 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/view/VView.h (.../VView.h) (revision c54863854ab063797737c6b3753e00115c0bbd11) +++ sources/view/VView.h (.../VView.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -222,7 +222,6 @@ REGISTER_TYPE( VPreTreatmentAdjustmentPatientConnectionConfirm ) \ REGISTER_TYPE( VPreTreatmentAdjustmentStartTreatment ) \ /* In-Treatment */ \ - REGISTER_TYPE( VTreatmentAdjustmentDuration ) \ REGISTER_TYPE( VTreatmentAdjustmentFlows ) \ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationState ) \ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationEdit ) \ @@ -234,6 +233,13 @@ REGISTER_TYPE( VTreatmentAdjustmentRecirculate ) \ REGISTER_TYPE( VTreatmentAdjustmentEnd ) \ REGISTER_TYPE( VTreatmentAdjustmentPressuresLimits ) \ + REGISTER_TYPE( VTreatmentAdjustmentBloodFlowRate ) \ + REGISTER_TYPE( VTreatmentAdjustmentBolusVolume ) \ + REGISTER_TYPE( VTreatmentAdjustmentDialysateFlowRate ) \ + REGISTER_TYPE( VTreatmentAdjustmentDialysateTemperature ) \ + REGISTER_TYPE( VTreatmentAdjustmentDurationConfirm ) \ + REGISTER_TYPE( VTreatmentAdjustmentDurationEdit ) \ + REGISTER_TYPE( VTreatmentAdjustmentSetPoints ) \ REGISTER_TYPE( VTreatmentCreate ) \ /* Post-Treatment */ \ REGISTER_TYPE( VPostTreatmentAdjustmentPatientDisconnectionConfirm ) \ Index: sources/view/hd/data/VTreatmentRanges.cpp =================================================================== diff -u -rb1462640e36df3f567c42aa8c8cbd6dafe865625 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision b1462640e36df3f567c42aa8c8cbd6dafe865625) +++ sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -12,6 +12,7 @@ * \date (original) 26-Aug-2020 * */ +#include "VInstitutionalRecord.h" #include "VTreatmentRanges.h" #include "VTreatmentCreate.h" @@ -25,14 +26,14 @@ void VTreatmentRanges::initConnections() { ACTION_VIEW_CONNECTION(TreatmentRangesData); ACTION_VIEW_CONNECTION(SettingsData); + ACTION_VIEW_CONNECTION(InstitutionalRecordResponseData); // since we do not have access to this object because it is created in QML. // Connection to the GuiController made here // It should be defined in the class which wants to connect to signal. // VTreatmentRanges -> GUIController -> ApplicationController to handle connect(this , SIGNAL(didTreatmentRangesDone(bool)), &_GuiController, SLOT( doTreatmentRangesDone(bool))); - } void View::VTreatmentRanges::onActionReceive(const TreatmentRangesData &vData) @@ -47,6 +48,37 @@ treatmentRanges_Dialysate_Flow_Max ( vData.mDialysate_Flow_Max - ( mDialysateFlowRateRes ? vData.mDialysate_Flow_Min % mDialysateFlowRateRes : 0 ) ); } +void View::VTreatmentRanges::onActionReceive(const InstitutionalRecordResponseData &vData) +{ + bloodFlowRateMin ( vData.mBloodFlowMin ); + bloodFlowRateMax ( vData.mBloodFlowMax ); + bloodFlowRateDef ( vData.mBloodFlowDef ); + dialysateFlowRateMin ( vData.mDialysateFlowMin ); + dialysateFlowRateMax ( vData.mDialysateFlowMax ); + dialysateFlowRateDef ( vData.mDialysateFlowDef ); + treatmentDurationMin ( vData.mTreatmentDurationMin ); + treatmentDurationMax ( vData.mTreatmentDurationMax ); + treatmentDurationDef ( vData.mTreatmentDurationDef ); + heparinBolusVolumeMin ( vData.mHepBolusVolumeMin ); + heparinBolusVolumeMax ( vData.mHepBolusVolumeMax ); + heparinBolusVolumeDef ( vData.mHepBolusVolumeDef ); + heparinDispensingRateMin ( vData.mHepDispRateMin ); + heparinDispensingRateMax ( vData.mHepDispRateMax ); + heparinDispensingRateDef ( vData.mHepDispRateDef ); + heparinStopTimeMin ( vData.mHepStopTimeMin ); + + acidConcentratePotassiumMin ( vData.mPotassiumMin ); + acidConcentratePotassiumMax ( vData.mPotassiumMax ); + acidConcentrateCalciumMin ( vData.mCalciumMin ); + acidConcentrateCalciumMax ( vData.mCalciumMax ); + dialysateTempMin ( vData.mDialysateTempMin ); + dialysateTempMax ( vData.mDialysateTempMax ); + dialysateTempDef ( vData.mDialysateTempDef ); + salineBolusVolumeMin ( vData.mFluidBolusVolumeMin ); + salineBolusVolumeMax ( vData.mFluidBolusVolumeMax ); + salineBolusVolumeDef ( vData.mFluidBolusVolumeDef ); +} + /** * \brief VTreatmentRanges::doSaveAcidConcentrate * \param vOption - QString new option to save to config file @@ -161,6 +193,16 @@ FROMVARIANT_WITHRETURN ( acidConcentrateCalciumMax , "Acid Concentrate Ranges" , "Acid_Concentrate_Calcium_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentrateCalciumRes , "Acid Concentrate Ranges" , "Acid_Concentrate_Calcium_Res" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateBicarbonateDef , "Dialysate Composition Ranges" , "Dialysate_Composition_Bicarbonate_Def", UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateBicarbonateMin , "Dialysate Composition Ranges" , "Dialysate_Composition_Bicarbonate_Min", UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateBicarbonateMax , "Dialysate Composition Ranges" , "Dialysate_Composition_Bicarbonate_Max", UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateBicarbonateRes , "Dialysate Composition Ranges" , "Dialysate_Composition_Bicarbonate_Res", UInt , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( dialysateSodiumDef , "Dialysate Composition Ranges" , "Dialysate_Composition_Sodium_Def" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateSodiumMin , "Dialysate Composition Ranges" , "Dialysate_Composition_Sodium_Min" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateSodiumMax , "Dialysate Composition Ranges" , "Dialysate_Composition_Sodium_Max" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( dialysateSodiumRes , "Dialysate Composition Ranges" , "Dialysate_Composition_Sodium_Res" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( salineBolusVolumeDef , "Saline Bolus Volume Ranges" , "Saline_Bolus_Volume_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( salineBolusVolumeMin , "Saline Bolus Volume Ranges" , "Saline_Bolus_Volume_Min" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( salineBolusVolumeMax , "Saline Bolus Volume Ranges" , "Saline_Bolus_Volume_Max" , UInt , isConfigsOk ); @@ -171,12 +213,21 @@ bicarbonateConcentrateOptions ( _Settings.keys(mCategory , "Bicarbonate Concentrate Options" )); dialyzerTypeOptions ( _Settings.keys(mCategory , "Dialyzer Type Options" )); bloodPressureMeasureInterval ( _Settings.keys(mCategory , "Vitals Measurement Interval Options" )); + treatmentModalityOptions ( _Settings.keys(mCategory , "Treatment Modality" )); + hdfTreatmentModeOptions ( _Settings.keys(mCategory , "HDF Treatment Mode" )); + dryBicabCartridgeSizeOptions ( _Settings.keys(mCategory , "Dry Bicarb Cartridge Size" )); + waterSampleTestResultRequired ( _Settings.keys(mCategory , "Water Sample Test Result Required" )); isConfigsOk = isConfigsOk && !_heparinTypeOptions .isEmpty(); + if ( _heparinTypeOptions.isEmpty() ) { heparinTypeOptions({"-- --"}); } isConfigsOk = isConfigsOk && !_acidConcentrateOptions .isEmpty(); isConfigsOk = isConfigsOk && !_bicarbonateConcentrateOptions.isEmpty(); isConfigsOk = isConfigsOk && !_dialyzerTypeOptions .isEmpty(); isConfigsOk = isConfigsOk && !_bloodPressureMeasureInterval .isEmpty(); + isConfigsOk = isConfigsOk && !_treatmentModalityOptions .isEmpty(); + isConfigsOk = isConfigsOk && !_hdfTreatmentModeOptions .isEmpty(); + isConfigsOk = isConfigsOk && !_dryBicabCartridgeSizeOptions .isEmpty(); + isConfigsOk = isConfigsOk && !_waterSampleTestResultRequired.isEmpty(); FROMVARIANT_WITHRETURN ( dialysateTempDef , "Dialysate Temperature" , "Dialysate_Temperature_Def" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateTempMin , "Dialysate Temperature" , "Dialysate_Temperature_Min" , Float , isConfigsOk ); @@ -223,13 +274,55 @@ FROMVARIANT_WITHRETURN ( rinsebackFlowRateMax , "Rinseback Flow Rate Ranges" , "Rinseback_Flow_Rate_Max" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( rinsebackFlowRateRes , "Rinseback Flow Rate Ranges" , "Rinseback_Flow_Rate_Res" , UInt , isConfigsOk ); - FROMVARIANT_WITHRETURN ( rinsebackFlowRateDef , "Rinseback Volume Ranges" , "Rinseback_Volume_Def" , UInt , isConfigsOk ); - FROMVARIANT_WITHRETURN ( rinsebackFlowRateMin , "Rinseback Volume Ranges" , "Rinseback_Volume_Min" , UInt , isConfigsOk ); - FROMVARIANT_WITHRETURN ( rinsebackFlowRateMax , "Rinseback Volume Ranges" , "Rinseback_Volume_Max" , UInt , isConfigsOk ); - FROMVARIANT_WITHRETURN ( rinsebackFlowRateRes , "Rinseback Volume Ranges" , "Rinseback_Volume_Res" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( rinsebackVolumeDef , "Rinseback Volume Ranges" , "Rinseback_Volume_Def" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( rinsebackVolumeMin , "Rinseback Volume Ranges" , "Rinseback_Volume_Min" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( rinsebackVolumeMax , "Rinseback Volume Ranges" , "Rinseback_Volume_Max" , UInt , isConfigsOk ); + FROMVARIANT_WITHRETURN ( rinsebackVolumeRes , "Rinseback Volume Ranges" , "Rinseback_Volume_Res" , UInt , isConfigsOk ); - // ultrafiltrationVolume: Def, Min, Max intentionally omitted (see config/configurations/Parameters/DataList.conf) + FROMVARIANT_WITHRETURN ( ultrafiltrationVolumeDef , "Ultrafiltration Volume Ranges" , "Ultrafiltration_Volume_Def" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( ultrafiltrationVolumeMin , "Ultrafiltration Volume Ranges" , "Ultrafiltration_Volume_Min" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( ultrafiltrationVolumeMax , "Ultrafiltration Volume Ranges" , "Ultrafiltration_Volume_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( ultrafiltrationVolumeRes , "Ultrafiltration Volume Ranges" , "Ultrafiltration_Volume_Res" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( substitutionVolumeDef , "Substitution Volume Ranges" , "Substitution_Volume_Def" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( substitutionVolumeMin , "Substitution Volume Ranges" , "Substitution_Volume_Min" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( substitutionVolumeMax , "Substitution Volume Ranges" , "Substitution_Volume_Max" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( substitutionVolumeRes , "Substitution Volume Ranges" , "Substitution_Volume_Res" , Float , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( minRORejectionRatioAlarmDef , "Minimum RO Rejection Ratio Alarm" , "Min_RO_Rejection_Ratio_Alarm_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( minRORejectionRatioAlarmMin , "Minimum RO Rejection Ratio Alarm" , "Min_RO_Rejection_Ratio_Alarm_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( minRORejectionRatioAlarmMax , "Minimum RO Rejection Ratio Alarm" , "Min_RO_Rejection_Ratio_Alarm_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( minRORejectionRatioAlarmRes , "Minimum RO Rejection Ratio Alarm" , "Min_RO_Rejection_Ratio_Alarm_Res" , Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( disinfectionFrequencyDef , "Disinfection Frequency" , "Disinfection_Frequency_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionFrequencyMin , "Disinfection Frequency" , "Disinfection_Frequency_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionFrequencyMax , "Disinfection Frequency" , "Disinfection_Frequency_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionFrequencyRes , "Disinfection Frequency" , "Disinfection_Frequency_Res" , Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( disinfectionParametersCycleTimeDef, "Disinfection Parameters Cycle Time" , "Disinfection_Parameters_Cycle_Time_Def", Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionParametersCycleTimeMin, "Disinfection Parameters Cycle Time" , "Disinfection_Parameters_Cycle_Time_Min", Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionParametersCycleTimeMax, "Disinfection Parameters Cycle Time" , "Disinfection_Parameters_Cycle_Time_Max", Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( disinfectionParametersCycleTimeRes, "Disinfection Parameters Cycle Time" , "Disinfection_Parameters_Cycle_Time_Res", Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( maxBloodPumpStopTimeDef , "Maximum Blood Pump Stop Time" , "Max_Blood_Pump_Stop_Time_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( maxBloodPumpStopTimeMin , "Maximum Blood Pump Stop Time" , "Max_Blood_Pump_Stop_Time_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( maxBloodPumpStopTimeMax , "Maximum Blood Pump Stop Time" , "Max_Blood_Pump_Stop_Time_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( maxBloodPumpStopTimeRes , "Maximum Blood Pump Stop Time" , "Max_Blood_Pump_Stop_Time_Res" , Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( inletWaterCondLowThresholdDef , "Inlet Water Cond. Low Threshold" , "Inlet_Water_Cond_Low_Threshold_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondLowThresholdMin , "Inlet Water Cond. Low Threshold" , "Inlet_Water_Cond_Low_Threshold_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondLowThresholdMax , "Inlet Water Cond. Low Threshold" , "Inlet_Water_Cond_Low_Threshold_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondLowThresholdRes , "Inlet Water Cond. Low Threshold" , "Inlet_Water_Cond_Low_Threshold_Res" , Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( inletWaterCondHighThresholdDef , "Inlet Water Cond. High Threshold" , "Inlet_Water_Cond_High_Threshold_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondHighThresholdMin , "Inlet Water Cond. High Threshold" , "Inlet_Water_Cond_High_Threshold_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondHighThresholdMax , "Inlet Water Cond. High Threshold" , "Inlet_Water_Cond_High_Threshold_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( inletWaterCondHighThresholdRes , "Inlet Water Cond. High Threshold" , "Inlet_Water_Cond_High_Threshold_Res" , Int , isConfigsOk ); + + FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckDef , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Def" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckMin , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Min" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckMax , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Max" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckRes , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Res" , Int , isConfigsOk ); + emit didTreatmentRangesDone( isConfigsOk ); } Index: sources/view/hd/data/VTreatmentRanges.h =================================================================== diff -u -rb1462640e36df3f567c42aa8c8cbd6dafe865625 -rc9764bd0ad823c5c1725d7c7f556290c2c459d4d --- sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision b1462640e36df3f567c42aa8c8cbd6dafe865625) +++ sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision c9764bd0ad823c5c1725d7c7f556290c2c459d4d) @@ -20,6 +20,7 @@ // Project #include "main.h" // Doxygen : do not remove #include "VView.h" +#include "MTDInstitutionalRecordResponse.h" #include "MTreatmentRangesData.h" #include "MSettings.h" // namespace @@ -45,34 +46,56 @@ READONLY( quint32 , treatmentRanges_Dialysate_Flow_Max , 0) // constant properties coming from the settings + + // Create Rx Parameters RANGESET( quint32 , bloodFlowRate , 0) RANGESET( quint32 , dialysateFlowRate , 0) RANGESET( quint32 , treatmentDuration , 0) - RANGESET( float , heparinDispensingRate , 0) RANGESET( float , heparinBolusVolume , 0) + RANGESET( float , heparinDispensingRate , 0) RANGESET( quint32 , heparinStopTime , 0) - RANGESET( quint32 , salineBolusVolume , 0) + RANGESET( float , acidConcentratePotassium , 0) RANGESET( float , acidConcentrateCalcium , 0) VALUESET( float , potassium , 0) VALUESET( float , calcium , 0) - - READONLY( QStringList , heparinTypeOptions ,{}) READONLY( QStringList , acidConcentrateOptions ,{}) READONLY( QStringList , bicarbonateConcentrateOptions ,{}) READONLY( QStringList , dialyzerTypeOptions ,{}) READONLY( QStringList , bloodPressureMeasureInterval ,{}) + RANGESET( float , dialysateTemp , 0) + RANGESET( quint32 , salineBolusVolume , 0) + // Institutional + RANGESET( quint32 , dialysateBicarbonate , 0) + RANGESET( quint32 , dialysateSodium , 0) + + READONLY( QStringList , heparinTypeOptions ,{}) + READONLY( QStringList , treatmentModalityOptions ,{}) + READONLY( QStringList , hdfTreatmentModeOptions ,{}) + READONLY( QStringList , dryBicabCartridgeSizeOptions ,{}) + PROPERTY( QString , acidConcentrate ,"") TRIGGER ( bool , acidConcentrateAccepted , false) - RANGESET( float , dialysateTemp , 0) RANGESET( qint32 , transmembranePressureLimitWindow , 0) RANGESET( qint32 , arterialPressureLimitWindow , 0) RANGESET( qint32 , venousPressureLimitWindow , 0) RANGESET( qint32 , venousPressureLimitAsymtrc , 0) RANGESET( quint32 , rinsebackFlowRate , 0) + RANGESET( quint32 , rinsebackVolume , 0) + RANGESET( float , substitutionVolume , 0) + // Advanced + RANGESET( quint32 , minRORejectionRatioAlarm , 0) + RANGESET( quint32 , disinfectionFrequency , 0) + RANGESET( quint32 , disinfectionParametersCycleTime , 0) + RANGESET( quint32 , maxBloodPumpStopTime , 0) + RANGESET( quint32 , inletWaterCondLowThreshold , 0) + RANGESET( quint32 , inletWaterCondHighThreshold , 0) + RANGESET( quint32 , chlorineWaterSampleCheck , 0) + READONLY( QStringList , waterSampleTestResultRequired ,{}) + // monitoring ranges RANGESET( qint32 , transmembranePressureMonitor , 0) RANGESET( qint32 , arterialPressureMonitor , 0) @@ -84,6 +107,7 @@ VIEW_DEC_CLASS(VTreatmentRanges ) VIEW_DEC_SLOT(TreatmentRangesData ) VIEW_DEC_SLOT(SettingsData ) + VIEW_DEC_SLOT(InstitutionalRecordResponseData ) signals: void didTreatmentRangesDone (bool vPass );