Index: leahi.pro
===================================================================
diff -u -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- leahi.pro (.../leahi.pro) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601)
+++ leahi.pro (.../leahi.pro) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -171,9 +171,11 @@
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 \
@@ -228,6 +230,8 @@
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 \
@@ -241,6 +245,8 @@
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 - confirm
@@ -259,7 +265,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 \
@@ -382,6 +387,7 @@
sources/view/settings/VCloudSync.h \
sources/view/settings/VHDUsageInfo.h \
sources/view/settings/VAdjustmentInstitutionalRecord.h \
+ sources/view/settings/VInstitutionalRecord.h \
\ # ---------- Views - TD - Adjustment - In-Treatment
sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationState.h \
sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.h \
@@ -502,9 +508,11 @@
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/adjustment/treatment/MTreatmentAdjustVitalsResponse.cpp \
sources/model/td/data/MTDAirBubbleData.cpp \
sources/model/td/data/MTDAirPumpData.cpp \
@@ -572,7 +580,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 \
@@ -587,6 +594,8 @@
sources/model/td/adjustment/treatment/MTreatmentAdjustSalineResponse.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
@@ -676,6 +685,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 \
@@ -709,6 +720,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 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- leahi.qrc (.../leahi.qrc) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8)
+++ leahi.qrc (.../leahi.qrc) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -27,6 +27,7 @@
sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml
sources/gui/qml/pages/settings/SettingsLocalization.qml
sources/gui/qml/pages/settings/SettingsUserMode.qml
+ sources/gui/qml/pages/settings/SettingsAdvancedInstitutional.qml
sources/gui/qml/dialogs/ConfirmDialog.qml
@@ -180,6 +181,8 @@
sources/gui/qml/compounds/LabelUnitContainer.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
qtquickcontrols2.conf
Index: main.cpp
===================================================================
diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- main.cpp (.../main.cpp) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1)
+++ main.cpp (.../main.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -544,7 +544,7 @@
//! - Qt Application initialization and parameters settings
// Qt Core Application parameters settings
- QApplication::setApplicationName(QLatin1String("Denali"));
+ QApplication::setApplicationName(QLatin1String("Leahi"));
QApplication::setOrganizationName(QLatin1String("Diality Inc."));
//! - Check the required font(s) present and can be loaded
Index: sources/ApplicationController.cpp
===================================================================
diff -u -rf2e4eba6e85c5d36537be782926f23cc9dc01037 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision f2e4eba6e85c5d36537be782926f23cc9dc01037)
+++ sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -669,12 +669,22 @@
* \details Sends an institutional record request
*/
void ApplicationController::institutionalRequest() {
- AdjustInstitutionalRequestData adjustInstitutionalRequestData;
- emit didAdjustment(adjustInstitutionalRequestData);
+ InstitutionalRequestData InstitutionalRequestData;
+ emit didAdjustment(InstitutionalRequestData);
LOG_DEBUG("POSTInstitutionalRecordReq Sent");
}
/*!
+ * \brief ApplicationController::institutionalRequest
+ * \details Sends an institutional record request
+ */
+void ApplicationController::advancedInstitutionalRequest() {
+ AdvancedInstitutionalRequestData AdvancedInstitutionalRequestData;
+ emit didAdjustment(AdvancedInstitutionalRequestData);
+ LOG_DEBUG("POSTAdvancedInstitutionalRecordReq Sent");
+}
+
+/*!
* \brief ApplicationController::onstartPOST
* \details The POST entry point
* - Sends the first async check-in to the HD to let HD know it can start it's POST and UI is ready to communicate.
@@ -732,9 +742,10 @@
// UI is done, let HD start the communication [ UI Check-in is the HD commjunication listener starter ]
checkIn();
emit didCheckInBegin ();
- alarmTrigger (Gui::GuiAlarmID::ALARM_ID_NO_ALARM, true); // send queued fails
- postDoneRequest (); // send HD the POST result
- versionsRequest (); // send HD the version request
- institutionalRequest (); // send HD the institutional record request
+ alarmTrigger (Gui::GuiAlarmID::ALARM_ID_NO_ALARM, true); // send queued fails
+ postDoneRequest (); // send HD the POST result
+ versionsRequest (); // send HD the version request
+ institutionalRequest (); // send TD the institutional record request
+ advancedInstitutionalRequest (); // send TD the advanced institutional record request
emit didPOSTPass (_post.isDone( )); // GuiController -> GuiView : didPOSTPass(bool)
}
Index: sources/ApplicationController.h
===================================================================
diff -u -rf2e4eba6e85c5d36537be782926f23cc9dc01037 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/ApplicationController.h (.../ApplicationController.h) (revision f2e4eba6e85c5d36537be782926f23cc9dc01037)
+++ sources/ApplicationController.h (.../ApplicationController.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -84,6 +84,7 @@
void postDoneRequest();
void versionsRequest();
void institutionalRequest();
+ void advancedInstitutionalRequest();
void alarmTrigger (Gui::GuiAlarmID vAlarmID, bool vSend = false, bool vSingle = false);
Index: sources/canbus/MessageDispatcher.cpp
===================================================================
diff -u -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601)
+++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -818,18 +818,136 @@
/*!
* \brief MessageDispatcher::onAdjustment
- * \details This method transmits the HD institutional record request to HD.
+ * \details This method transmits adjusting the TD institutional record request to TD.
* \param vData -
* \return void
*/
-void MessageDispatcher::onAdjustment(const AdjustInstitutionalRequestData &)
+void MessageDispatcher::onAdjustment(const AdjustInstitutionalRequestData &vData)
{
- QVariantList mData;
+ QVariantList mData ;
+ mData += vData.mBloodFlowMin ;
+ mData += vData.mBloodFlowMax ;
+ mData += vData.mBloodFlowDef ;
+ mData += vData.mDialysateFlowMin ;
+ mData += vData.mDialysateFlowMax ;
+ mData += vData.mDialysateFlowDef ;
+ mData += vData.mTreatmentDurationMin ;
+ mData += vData.mTreatmentDurationMax ;
+ mData += vData.mTreatmentDurationDef ;
+ mData += vData.mHepBolusVolumeMin ;
+ mData += vData.mHepBolusVolumeMax ;
+ mData += vData.mHepBolusVolumeDef ;
+ mData += vData.mHepDispRateMin ;
+ mData += vData.mHepDispRateMax ;
+ mData += vData.mHepDispRateDef ;
+ mData += vData.mHepStopTimeMin ;
+ mData += vData.mHepStopTimeMax ;
+ mData += vData.mDialysateTempMin ;
+ mData += vData.mDialysateTempMax ;
+ mData += vData.mDialysateTempDef ;
+ mData += vData.mPotassiumMin ;
+ mData += vData.mPotassiumMax ;
+ mData += vData.mCalciumMin ;
+ mData += vData.mCalciumMax ;
+ mData += vData.mDialysateBicarbonateMin ;
+ mData += vData.mDialysateBicarbonateMax ;
+ mData += vData.mDialysateBicarbonateDef ;
+ mData += vData.mDialysateSodiumMin ;
+ mData += vData.mDialysateSodiumMax ;
+ mData += vData.mDialysateSodiumDef ;
+ mData += vData.mFluidBolusVolumeMin ;
+ mData += vData.mFluidBolusVolumeMax ;
+ mData += vData.mFluidBolusVolumeDef ;
+ mData += vData.mArterialWindowMin ;
+ mData += vData.mArterialWindowMax ;
+ mData += vData.mArterialWindowDef ;
+ mData += vData.mVenousWindowMin ;
+ mData += vData.mVenousWindowMax ;
+ mData += vData.mVenousWindowDef ;
+ mData += vData.mVenousAsymmetricMin ;
+ mData += vData.mVenousAsymmetricMax ;
+ mData += vData.mVenousAsymmetricDef ;
+ mData += vData.mTMPWindowMin ;
+ mData += vData.mTMPWindowMax ;
+ mData += vData.mTMPWindowDef ;
+ mData += vData.mUltrafiltrationVolumeMin ;
+ mData += vData.mUltrafiltrationVolumeMax ;
+ mData += vData.mUltrafiltrationVolumeDef ;
+ mData += vData.mVitalsIntervalDef ;
+ mData += vData.mRinsebackVolumeMin ;
+ mData += vData.mRinsebackVolumeMax ;
+ mData += vData.mRinsebackVolumeDef ;
+ mData += vData.mRinsebackFlowRateMin ;
+ mData += vData.mRinsebackFlowRateMax ;
+ mData += vData.mRinsebackFlowRateDef ;
+ mData += vData.mSubstitutionVolumeMin ;
+ mData += vData.mSubstitutionVolumeMax ;
+ mData += vData.mSubstitutionVolumeDef ;
+
onActionTransmit(GuiActionType::ID_AdjustInstitutionalRecordReq, mData);
}
/*!
* \brief MessageDispatcher::onAdjustment
+ * \details This method transmits the TD institutional record request to TD.
+ * \param vData -
+ * \return void
+ */
+void MessageDispatcher::onAdjustment(const InstitutionalRequestData &)
+{
+ QVariantList mData;
+ onActionTransmit(GuiActionType::ID_InstitutionalRecordReq, mData);
+}
+
+/*!
+ * \brief MessageDispatcher::onAdjustment
+ * \details This method transmits the TD institutional record request to TD.
+ * \param vData -
+ * \return void
+ */
+void MessageDispatcher::onAdjustment(const AdvancedInstitutionalRequestData &)
+{
+ QVariantList mData;
+ onActionTransmit(GuiActionType::ID_AdvancedInstitutionalRecordReq, mData);
+}
+
+/*!
+ * \brief MessageDispatcher::onAdjustment
+ * \details This method transmits adjusting the TD advanced institutional record request to TD.
+ * \param vData -
+ * \return void
+ */
+void MessageDispatcher::onAdjustment(const AdjustAdvancedInstitutionalRequestData &vData)
+{
+ QVariantList mData ;
+ mData += vData.mMinRORejectionRatioAlarmMin ;
+ mData += vData.mMinRORejectionRatioAlarmMax ;
+ mData += vData.mMinRORejectionRatioAlarmDef ;
+ mData += vData.mDisinfectionFrequencyMin ;
+ mData += vData.mDisinfectionFrequencyMax ;
+ mData += vData.mDisinfectionFrequencyDef ;
+ mData += vData.mDisinfectionParametersCycleTimeMin;
+ mData += vData.mDisinfectionParametersCycleTimeMax;
+ mData += vData.mDisinfectionParametersCycleTimeDef;
+ mData += vData.mMaxBloodPumpStopTimeMin ;
+ mData += vData.mMaxBloodPumpStopTimeMax ;
+ mData += vData.mMaxBloodPumpStopTimeDef ;
+ mData += vData.mInletWaterCondLowThresholdMin ;
+ mData += vData.mInletWaterCondLowThresholdMax ;
+ mData += vData.mInletWaterCondLowThresholdDef ;
+ mData += vData.mInletWaterCondHighThresholdMin ;
+ mData += vData.mInletWaterCondHighThresholdMax ;
+ mData += vData.mInletWaterCondHighThresholdDef ;
+ mData += vData.mChlorineWaterSampleCheckMin ;
+ mData += vData.mChlorineWaterSampleCheckMax ;
+ mData += vData.mChlorineWaterSampleCheckDef ;
+ mData += vData.mWaterSampleTestResultRequiredDef ;
+
+ onActionTransmit(GuiActionType::ID_AdjustAdvancedInstitutionalRecordReq, mData);
+}
+
+/*!
+ * \brief MessageDispatcher::onAdjustment
* \details This method transmits the Disposables Removal Confirm Adjustment Denali message.
* \param vData - Data model contains Service Mode adjustment.
* \return void
Index: sources/canbus/MessageDispatcher.h
===================================================================
diff -u -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601)
+++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -160,6 +160,9 @@
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 -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601)
+++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -300,9 +300,18 @@
{Gui::GuiActionType::ID_HDGeneralEvent , 5 * 4 }, // 5 parameters each 4bytes
{Gui::GuiActionType::ID_DGGeneralEvent , 5 * 4 }, // 5 parameters each 4bytes
- {Gui::GuiActionType::ID_AdjustInstitutionalRecordReq , 0 * 4 }, // 0 parameter
- {Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp , 27 * 4 }, //27 parameters each 4 bytes
+ {Gui::GuiActionType::ID_InstitutionalRecordReq , 0 * 4 }, // 0 parameter
+ {Gui::GuiActionType::ID_InstitutionalRecordRsp , 60 * 4 }, // 60 parameters each 4 bytes
+ {Gui::GuiActionType::ID_AdjustInstitutionalRecordReq , 58 * 4 }, // 58 parameters each 4 bytes
+ {Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp , 59 * 4 }, // 59 parameters each 4 bytes
+
+ {Gui::GuiActionType::ID_AdvancedInstitutionalRecordReq , 0 * 4 }, // 0 parameter
+ {Gui::GuiActionType::ID_AdvancedInstitutionalRecordRsp , 24 * 4 }, // 24 parameters each 4 bytes
+
+ {Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordReq , 22 * 4 }, // 22 parameters each 4 bytes
+ {Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordRsp , 23 * 4 }, // 23 parameters each 4 bytes
+
// HD reset request in service mode
{Gui::GuiActionType::ID_ResetHDInServiceModeReq , 0 * 4 }, // 0 parameters each 4bytes
};
Index: sources/canbus/MessageInterpreter.cpp
===================================================================
diff -u -r87be1a4b3a1d19c60b37908f1cba8e310799a963 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 87be1a4b3a1d19c60b37908f1cba8e310799a963)
+++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -230,7 +230,10 @@
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;
@@ -469,7 +472,12 @@
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;
Index: sources/gui/GuiGlobals.cpp
===================================================================
diff -u -r9048646630717f980a852df54349805ba63773e0 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 9048646630717f980a852df54349805ba63773e0)
+++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -51,6 +51,9 @@
#include "VCloudSync.h"
#include "VHDUsageInfo.h"
#include "VAdjustmentInstitutionalRecord.h"
+#include "VInstitutionalRecord.h"
+#include "VAdjustmentAdvancedInstitutionalRecord.h"
+#include "VAdvancedInstitutionalRecord.h"
// states data
#include "VTDOpModeData.h"
#include "VPreTreatmentStatesData.h"
Index: sources/gui/GuiGlobals.h
===================================================================
diff -u -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8)
+++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -105,7 +105,7 @@
ID_AdjustSerialDDRsp = 0x5200, // 82 //// ----- @LEAHIZED
// Service Information
- ID_AdjustServiceDatesReq = 0x8900, // 137
+ 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
@@ -311,9 +311,17 @@
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
};
Index: sources/gui/qml/compounds/InstitutionalContainer.qml
===================================================================
diff -u
--- sources/gui/qml/compounds/InstitutionalContainer.qml (revision 0)
+++ sources/gui/qml/compounds/InstitutionalContainer.qml (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,201 @@
+/*!
+ *
+ * Copyright (c) 2021-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file InstitutionalContainer.qml
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+
+import "qrc:/globals"
+import "qrc:/components"
+
+import QtQuick 2.12
+import QtQuick.Controls 2.2
+
+LabelUnitContainer { id: _root
+ height : Variables.institutionaltContainerHeight
+
+ readonly property alias minValue : _min.value
+ readonly property alias maxValue : _max.value
+ readonly property alias defValue : _def.value
+ readonly property alias defCustomValue : _defCustom.currentIndex
+
+ readonly property int subcomponentWidth : contentArea.width / 3
+ readonly property int none : -1
+
+ property alias minText : _minText.text
+ property alias maxText : _maxText.text
+ property alias defText : _defText.text
+ property real min : 0
+ property real max : 0
+ property real step : 0
+ property real decimal : 0
+ property bool canOff : false
+ property bool minEditable : true
+ property bool maxEditable : true
+ property bool defEditable : true
+ property bool defCustomEditable : true
+ property real minVal : 0
+ property real maxVal : 0
+ property real defVal : 0
+ property int rejectionMin : 0
+ property int rejectionMax : 0
+ property int rejectionDef : 0
+ property var defModel : []
+ property bool grabbed : false
+
+ contentItem : Row { id: _row
+ spacing : 10
+ anchors.fill: parent
+ Rectangle {
+ width : _root.subcomponentWidth
+ height : _root.height
+ color : Colors.transparent
+ radius : 8.5
+ border {
+ width: 1
+ color: _root.rejectionMin ? Colors.panelInvalidBorderColor : Colors.transparent
+ }
+
+ ValueAdjuster { id: _min
+ anchors.fill : parent
+ editable : _root.minEditable
+ minimum : _root.min
+ maximum : _max.value
+ step : _root.step
+ value : _root.minVal
+ decimal : _root.decimal
+ isActive : true
+ canOff : _root.canOff
+ visible : _root.minVal !== _root.none
+
+ onGrabbedChanged: {
+ _root.grabbed = grabbed
+ }
+
+ onDidChange : function(vValue) {
+ _root.rejectionMin = Variables.noRejectReason
+ value = vValue
+ }
+ }
+
+ // will show only if area has text only and nothing editable
+ Text { id: _minText
+ anchors.fill : parent
+ visible : _root.minVal === _root.none
+ color : Colors.offWhite
+ font.pixelSize : Fonts.fontPixelValueControl
+ horizontalAlignment : Text.AlignHCenter
+ verticalAlignment : Text.AlignVCenter
+ }
+ }
+
+ Rectangle {
+ width : _root.subcomponentWidth
+ height : _root.height
+ color : Colors.transparent
+ radius : 8.5
+ border {
+ width: 1
+ color: _root.rejectionMax ? Colors.panelInvalidBorderColor : Colors.transparent
+ }
+
+ ValueAdjuster { id: _max
+ anchors.fill : parent
+ editable : _root.maxEditable
+ minimum : _min.value
+ maximum : _root.max
+ step : _root.step
+ value : _root.maxVal
+ decimal : _root.decimal
+ isActive : true
+ canOff : _root.canOff
+ visible : _root.maxVal !== _root.none
+
+ onGrabbedChanged: {
+ _root.grabbed = grabbed
+ }
+
+ onDidChange : function(vValue) {
+ _root.rejectionMax = Variables.noRejectReason
+ value = vValue
+ }
+ }
+
+ // will show only if area has text only and nothing editable
+ Text { id: _maxText
+ anchors.fill : parent
+ visible : _root.maxVal === _root.none
+ color : Colors.offWhite
+ font.pixelSize : Fonts.fontPixelValueControl
+ horizontalAlignment : Text.AlignHCenter
+ verticalAlignment : Text.AlignVCenter
+ }
+ }
+
+ Rectangle {
+ width : _root.subcomponentWidth - Variables.defaultMargin // need margin for right side for rejection box
+ height : _root.height
+ color : Colors.transparent
+ radius : 8.5
+
+ border {
+ width: 1
+ color: _root.rejectionDef ? Colors.panelInvalidBorderColor : Colors.transparent
+ }
+
+ // TODO fix VitalsInterval on enhancement branch... this branch does not have updated vitals code and combobox
+ ValueAdjuster { id: _def
+ anchors.fill : parent
+ editable : _root.defEditable
+ minimum : _root.min
+ maximum : _root.max
+ step : _root.step
+ value : _root.defVal
+ decimal : _root.decimal
+ isActive : true
+ canOff : _root.canOff
+ visible : _root.defVal !== _root.none && _root.defModel.length === 0
+
+ onGrabbedChanged: {
+ _root.grabbed = grabbed
+ }
+
+ onDidChange : function(vValue) {
+ _root.rejectionDef = Variables.noRejectReason
+ value = vValue
+ }
+ }
+
+ ValueAdjusterCustom { id: _defCustom
+ anchors.fill : parent
+ visible : _root.defModel.length > 0
+ model : _root.defModel.length === 0 ? [] : _root.defModel
+ currentIndex : _root.defVal
+ canOff : _root.canOff
+ editable : _root.defCustomEditable
+
+ onGrabbedChanged: {
+ _root.grabbed = grabbed
+ }
+ }
+
+ // will show only if area has text only and nothing editable
+ Text { id: _defText
+ anchors.fill : parent
+ visible : _root.defVal === _root.none && _root.defModel.length === 0
+ color : Colors.offWhite
+ font.pixelSize : Fonts.fontPixelValueControl
+ horizontalAlignment : Text.AlignHCenter
+ verticalAlignment : Text.AlignVCenter
+ }
+ }
+ }
+}
Index: sources/gui/qml/compounds/ValueAdjuster.qml
===================================================================
diff -u -rb16fd955f65d83321decdc54bd3d5695fc81c32c -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision b16fd955f65d83321decdc54bd3d5695fc81c32c)
+++ sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -31,6 +31,7 @@
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
@@ -169,10 +170,10 @@
}
MouseArea { id: _sliderMouseArea
- property bool grabbed: false
anchors.fill : parent
pressAndHoldInterval: 0
+ drag.axis : Drag.XAxis // only horizontal
onClicked: {
if ( _root.editable ) { didActiveChange(true); focus = true }
@@ -181,18 +182,18 @@
}
onReleased: {
- _sliderMouseArea.grabbed = false
+ _root.grabbed = false
_slider.opacity = 0
}
onPressAndHold: {
if ( _root.editable ) { didActiveChange(true); focus = true }
- _sliderMouseArea.grabbed = true
+ _root.grabbed = true
}
onPositionChanged: {
- if (grabbed) {
+ if (_root.grabbed) {
if ( _slider.opacity === 0 ) { _animator.start() }
_slider.pos = Math.max(0, Math.min(1, mouse.x / parent.width))
@@ -203,7 +204,7 @@
}
onExited: {
- if ( ! _sliderMouseArea.grabbed ) {
+ if ( ! _root.grabbed ) {
_animator.stop()
_slider.opacity = 0
}
@@ -215,7 +216,7 @@
from : 0
to : 1
duration: 350
- running : _sliderMouseArea.grabbed
+ running : _root.grabbed
}
Behavior on opacity { NumberAnimation { duration: 200 } }
Index: sources/gui/qml/compounds/ValueAdjusterCustom.qml
===================================================================
diff -u
--- sources/gui/qml/compounds/ValueAdjusterCustom.qml (revision 0)
+++ sources/gui/qml/compounds/ValueAdjusterCustom.qml (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,157 @@
+/*!
+ *
+ * Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file ValueAdjusterCustom.qml
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+
+import "qrc:/globals"
+import "qrc:/components"
+
+// Qt
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+
+Item { id: _root
+ property var model : []
+ property int currentIndex : 0
+ property int length : model.length === 0 ? 0 : model.length
+ readonly property bool canIncrement : _root.currentIndex < _root.length - 1
+ readonly property bool canDecrement : _root.currentIndex > 0
+ property bool grabbed : false
+ property bool canOff : false
+ property bool editable : true
+ property int textWidth : 230
+
+ Slider { id: _slider
+ property real pos : 0
+
+ anchors.fill : parent
+ anchors.rightMargin : Variables.defaultMargin * 3
+ anchors.leftMargin : Variables.defaultMargin * 2
+ anchors.topMargin : 5
+ opacity : 0
+ stepSize : 1
+ from : 0
+ to : _root.length - 1
+ value : _root.currentIndex
+ snapMode : Slider.SnapOnRelease
+ enabled : _root.editable
+
+ background: Rectangle {
+ color: "transparent"
+ Rectangle {
+ anchors{
+ top : parent.top
+ topMargin : 1.5
+ left : parent.left
+ right : parent.right
+ rightMargin : Variables.defaultMargin * -1
+ }
+ height : 1
+ width : parent.width
+ color : Colors.panelBorderColor
+ }
+ }
+
+ handle: Rectangle { id: _knob
+ width : 20
+ height : 4
+ radius : height
+ color : Colors.borderButton
+ x : _slider.pos * _slider.width
+ }
+
+ MouseArea { id: _sliderMouseArea
+ anchors.fill : parent
+ pressAndHoldInterval: 0
+ drag.axis : Drag.XAxis // only horizontal
+
+ onClicked: {
+ _slider.opacity = 0
+ }
+
+ onReleased: {
+ _root.grabbed = false
+ _slider.opacity = 0
+ }
+
+ onPressAndHold: {
+ _root.grabbed = true
+ }
+
+ onPositionChanged: {
+ 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) / _slider.stepSize) * _slider.stepSize + _slider.from
+
+ _root.currentIndex = stepped
+ }
+ }
+
+ onExited: {
+ if ( ! _root.grabbed ) {
+ _animator.stop()
+ _slider.opacity = 0
+ }
+ }
+ }
+
+ OpacityAnimator { id: _animator
+ target : _slider
+ from : 0
+ to : 1
+ duration: 350
+ running : _root.grabbed
+ }
+
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ }
+
+ Row {
+ spacing : Variables.defaultMargin // spacing between items to match others
+ anchors.centerIn : parent
+
+ IconButton { id: _leftArrow
+ iconSize : Variables.circleButtonDefaultDiameter
+ enabled : _root.canDecrement
+ visible : _root.editable
+ iconImageSource : enabled ? "qrc:/images/iArrowLeft" :
+ "qrc:/images/iArrowLeftDisabled"
+ onClicked : _root.currentIndex -= 1
+ }
+
+ // Display current item
+ Text { id: _currentItem
+ text : _root.model[_root.currentIndex] !== undefined ?
+ _root.canOff ? _root.currentIndex === 0 ? qsTr("OFF") : _root.model[_root.currentIndex] :
+ _root.model[_root.currentIndex] : ""
+ color : Colors.offWhite
+ font.pixelSize : Fonts.fontPixelValueControl
+ horizontalAlignment : Text.AlignHCenter
+ verticalAlignment : Text.AlignVCenter
+ height : parent.height
+ width : _root.editable ? _root.textWidth : parent.width
+ }
+
+ IconButton { id: _rightArrow
+ iconSize : Variables.circleButtonDefaultDiameter
+ enabled : _root.canIncrement
+ visible : _root.editable
+ iconImageSource : enabled ? "qrc:/images/iArrowRight" :
+ "qrc:/images/iArrowRightDisabled"
+ onClicked : _root.currentIndex += 1
+ }
+ }
+}
Index: sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml
===================================================================
diff -u -re310a3245018c3b5405ccddeb899f9c5b8a94d78 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml (.../AcidConcentrateAdjustment.qml) (revision e310a3245018c3b5405ccddeb899f9c5b8a94d78)
+++ sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml (.../AcidConcentrateAdjustment.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -78,8 +78,8 @@
height : _root.controlHeight
contentItem : ValueAdjuster{ id: _potassiumValueControl
- minimum : vTreatmentRanges.acidConcentratePotassiumMin
- maximum : vTreatmentRanges.acidConcentratePotassiumMax
+ minimum : vInstitutionalRecord.acidConcentratePotassiumMin
+ maximum : vInstitutionalRecord.acidConcentratePotassiumMax
step : vTreatmentRanges.acidConcentratePotassiumRes
defaultValue : vTreatmentRanges.acidConcentratePotassiumDef
decimal : Variables.potassiumPrecision
@@ -103,8 +103,8 @@
height : _root.controlHeight
contentItem : ValueAdjuster { id: _calciumValueControl
- minimum : vTreatmentRanges.acidConcentrateCalciumMin
- maximum : vTreatmentRanges.acidConcentrateCalciumMax
+ minimum : vInstitutionalRecord.acidConcentrateCalciumMin
+ maximum : vInstitutionalRecord.acidConcentrateCalciumMax
step : vTreatmentRanges.acidConcentrateCalciumRes
defaultValue : vTreatmentRanges.acidConcentrateCalciumDef
decimal : Variables.calciumPrecision
Index: sources/gui/qml/globals/Colors.qml
===================================================================
diff -u -r93b7d7da5dea9e0392e139b59117eb0315d6c343 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 93b7d7da5dea9e0392e139b59117eb0315d6c343)
+++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -153,6 +153,7 @@
readonly property color createTreatmentInvalidParam : red
readonly property color scrollBarBgColor : white //"#80696969" // half transparent dimgray
+ readonly property color scrollBarColor : "#6992BC"
readonly property color ufVolumeGoalText : "#f5be59"
readonly property color ufNotificationBarBg : "#0f2841"
@@ -161,6 +162,8 @@
readonly property color ufAdjustmentProgressBarBg : "#2C517D"
readonly property color progressBarMinMax : "#c7c7c7"
+ readonly property color roFeatured : "#E79DF6"
+ readonly property color roDefeatured : "#F9CD74"
// ---------- < PRS > Related Section ----------
// Alarm priority colors
function alarmPriorityColors(vPriority) {
Index: sources/gui/qml/globals/Variables.qml
===================================================================
diff -u -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8)
+++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -156,7 +156,6 @@
readonly property int settingsNotificationMargin : 10
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
@@ -191,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
@@ -252,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
Index: sources/gui/qml/main.qml
===================================================================
diff -u -r93b7d7da5dea9e0392e139b59117eb0315d6c343 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/main.qml (.../main.qml) (revision 93b7d7da5dea9e0392e139b59117eb0315d6c343)
+++ sources/gui/qml/main.qml (.../main.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -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
@@ -177,6 +180,9 @@
VCloudSync { id: vCloudSync }
VHDUsageInfo { id: vHDUsageInfo }
VAdjustmentInstitutionalRecord { id: vAdjustmentInstitutionalRecord }
+ VInstitutionalRecord { id: vInstitutionalRecord }
+ VAdjustmentAdvancedInstitutionalRecord { id: vAdjustmentAdvancedInstitutionalRecord }
+ VAdvancedInstitutionalRecord { id: vAdvancedInstitutionalRecord }
//VAdjustIn
// ---- States
VTDOpMode { id: vTDOpMode
Index: sources/gui/qml/pages/disinfect/DisinfectStack.qml
===================================================================
diff -u -rf2e4eba6e85c5d36537be782926f23cc9dc01037 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/disinfect/DisinfectStack.qml (.../DisinfectStack.qml) (revision f2e4eba6e85c5d36537be782926f23cc9dc01037)
+++ sources/gui/qml/pages/disinfect/DisinfectStack.qml (.../DisinfectStack.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -62,13 +62,13 @@
title.text : _root.disinfectTitle
TouchGrid {
- property bool isVisible: vAdjustmentInstitutionalRecord.enableChemicalDisinfect
+// property bool isVisible: vAdjustmentInstitutionalRecord.enableChemicalDisinfect
width : parent.width / 2
itemWidth : 400
colCount : 1
colSpacing : 0
itemsText : [ _root.flushTitle , _root.heatActiveTitle , _root.chemicalTitle , _root.chemFlushTitle , _root.roPermeateTitle , _root.heatPassiveTitle ]
- itemsVisible : [ true , true , isVisible , isVisible , true , true ]
+// itemsVisible : [ true , true , isVisible , isVisible , true , true ]
onItemClicked : [ doDisinfectFlush , doDisinfectHeatActiveCool , doDisinfectChemical , doDisinfectChemFlush , doDisinfectROPermeate , doDisinfectHeatPassiveCool][vIndex]()
}
Image { id: _denaliDeviceImage
Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml
===================================================================
diff -u -r93b7d7da5dea9e0392e139b59117eb0315d6c343 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 93b7d7da5dea9e0392e139b59117eb0315d6c343)
+++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -244,8 +244,8 @@
horizontalAlignment : Text.AlignRight
font.pixelSize : Fonts.fontPixelValueControl
color : Colors.offWhite
- visible : _pretreatmentPatientIDEntry.textInput.text.length === 0 &&
- ! _pretreatmentPatientIDEntry.textInput.activeFocus
+ visible : _pretreatmentPatientIDEntry.textInput.text.length === 0 &&
+ ! _pretreatmentPatientIDEntry.textInput.activeFocus
}
}
}
@@ -277,10 +277,10 @@
contentItem : ValueAdjuster { id: _bloodFlowRateControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.bloodFlowRateMin
- maximum : vTreatmentRanges.bloodFlowRateMax
+ minimum : vInstitutionalRecord.bloodFlowRateMin
+ maximum : vInstitutionalRecord.bloodFlowRateMax
step : vTreatmentRanges.bloodFlowRateRes
- defaultValue : vTreatmentRanges.bloodFlowRateDef
+ defaultValue : vInstitutionalRecord.bloodFlowRateDef
value : vTreatmentCreate.bloodFlowRate
isActive : vTreatmentCreate.bloodFlowRateSet
onDidActiveChange: function(vState) { vTreatmentCreate.bloodFlowRateSet = vState }
@@ -326,10 +326,10 @@
contentItem : ValueAdjuster { id: _dialysateFlowRateControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.dialysateFlowRateMin
- maximum : vTreatmentRanges.dialysateFlowRateMax
+ minimum : vInstitutionalRecord.dialysateFlowRateMin
+ maximum : vInstitutionalRecord.dialysateFlowRateMax
step : vTreatmentRanges.dialysateFlowRateRes
- defaultValue : vTreatmentRanges.dialysateFlowRateDef
+ defaultValue : vInstitutionalRecord.dialysateFlowRateDef
value : vTreatmentCreate.dialysateFlowRate
isActive : vTreatmentCreate.dialysateFlowRateSet
onDidActiveChange: function(vState) { vTreatmentCreate.dialysateFlowRateSet = vState }
@@ -369,10 +369,10 @@
contentItem : ValueAdjuster { id: _durationControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.treatmentDurationMin
- maximum : vTreatmentRanges.treatmentDurationMax
+ minimum : vInstitutionalRecord.treatmentDurationMin
+ maximum : vInstitutionalRecord.treatmentDurationMax
step : vTreatmentRanges.treatmentDurationRes
- defaultValue : vTreatmentRanges.treatmentDurationDef
+ defaultValue : vInstitutionalRecord.treatmentDurationDef
value : vTreatmentCreate.treatmentDuration
isActive : vTreatmentCreate.treatmentDurationSet
onDidActiveChange: function(vState) { vTreatmentCreate.treatmentDurationSet = vState }
@@ -416,10 +416,10 @@
contentItem : ValueAdjuster { id: _heparinBolusVolumeControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.heparinBolusVolumeMin
- maximum : vTreatmentRanges.heparinBolusVolumeMax
+ minimum : vInstitutionalRecord.heparinBolusVolumeMin
+ maximum : vInstitutionalRecord.heparinBolusVolumeMax
step : vTreatmentRanges.heparinBolusVolumeRes
- defaultValue : vTreatmentRanges.heparinBolusVolumeDef
+ defaultValue : vInstitutionalRecord.heparinBolusVolumeDef
value : vTreatmentCreate.heparinBolusVolume
decimal : Variables.heparinPrecision
canOff : true
@@ -471,10 +471,10 @@
contentItem : ValueAdjuster { id: _heparinDispensingRateControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.heparinDispensingRateMin
- maximum : vTreatmentRanges.heparinDispensingRateMax
+ minimum : vInstitutionalRecord.heparinDispensingRateMin
+ maximum : vInstitutionalRecord.heparinDispensingRateMax
step : vTreatmentRanges.heparinDispensingRateRes
- defaultValue : vTreatmentRanges.heparinDispensingRateDef
+ defaultValue : vInstitutionalRecord.heparinDispensingRateDef
value : vTreatmentCreate.heparinDispensingRate
decimal : Variables.heparinPrecision
canOff : true
@@ -510,10 +510,10 @@
contentItem : ValueAdjuster { id: _dialysateTemperatureControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.dialysateTempMin
- maximum : vTreatmentRanges.dialysateTempMax
+ minimum : vInstitutionalRecord.dialysateTempMin
+ maximum : vInstitutionalRecord.dialysateTempMax
step : vTreatmentRanges.dialysateTempRes
- defaultValue : vTreatmentRanges.dialysateTempDef
+ defaultValue : vInstitutionalRecord.dialysateTempDef
value : vTreatmentCreate.dialysateTemp
decimal : Variables.dialysateTempPrecision
isActive : vTreatmentCreate.dialysateTempSet
@@ -533,7 +533,7 @@
contentItem : ValueAdjuster { id: _heparinStopTimeControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.heparinStopTimeMin
+ minimum : vInstitutionalRecord.heparinStopTimeMin
maximum : _durationControl.value
step : _durationControl.step
defaultValue : _durationControl.value
@@ -550,16 +550,16 @@
}
LabelUnitContainer { id: _salineBolusVolume
- text : qsTr("Saline Bolus Volume")
+ text : qsTr("Fluid Bolus Volume")
unitText : Variables.unitTextFluid
valid : ! vTreatmentCreate.salineBolusVolumeRejectReason
contentItem : ValueAdjuster { id: _salineBolusVolumeControl
editable : _root.editingEnabled
- minimum : vTreatmentRanges.salineBolusVolumeMin
- maximum : vTreatmentRanges.salineBolusVolumeMax
+ minimum : vInstitutionalRecord.fluidBolusVolumeMin
+ maximum : vInstitutionalRecord.fluidBolusVolumeMax
step : vTreatmentRanges.salineBolusVolumeRes
- defaultValue : vTreatmentRanges.salineBolusVolumeDef
+ defaultValue : vInstitutionalRecord.fluidBolusVolumeDef
value : vTreatmentCreate.salineBolusVolume
isActive : vTreatmentCreate.salineBolusVolumeSet
onDidActiveChange: function(vState) { vTreatmentCreate.salineBolusVolumeSet = vState }
@@ -571,3 +571,4 @@
}
}
}
+
Index: sources/gui/qml/pages/settings/SettingsAdvancedInstitutional.qml
===================================================================
diff -u
--- sources/gui/qml/pages/settings/SettingsAdvancedInstitutional.qml (revision 0)
+++ sources/gui/qml/pages/settings/SettingsAdvancedInstitutional.qml (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,348 @@
+/*!
+ *
+ * Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file SettingsAdvancedInstitutional.qml
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+
+// Qt
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtGraphicalEffects 1.12
+
+// Qml imports
+import "qrc:/globals"
+import "qrc:/compounds"
+import "qrc:/components"
+
+SettingsBase { id: _root
+ itemIndex : SettingsStack.AdvancedInstitutional
+ contentArea.anchors.rightMargin : 0
+ property var title : vAdvancedInstitutionalRecord.parametersTitle
+ property var unit : vAdvancedInstitutionalRecord.parametersUnit
+
+ readonly property int min : 0
+ readonly property int max : 1
+ readonly property int def : 2
+ readonly property int defCustom : 3
+
+ readonly property int none : -1
+
+ enum Records {
+ MinRoRejectionRatio ,
+ DisinfectionFrequency ,
+ DisinfectionParametersCycleTime ,
+ MaxBloodPumpStopTime ,
+ InletWaterCondLowThreshold ,
+ InletWaterCondHighThreshold ,
+ ChlorineWaterSampleCheck ,
+ WaterSampleTestResultRequired
+ }
+
+ onConfirmClicked: {
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMin = getValue(SettingsAdvancedInstitutional.MinRoRejectionRatio)[min]
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMax = getValue(SettingsAdvancedInstitutional.MinRoRejectionRatio)[max]
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmDef = getValue(SettingsAdvancedInstitutional.MinRoRejectionRatio)[def]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMin = getValue(SettingsAdvancedInstitutional.DisinfectionFrequency)[min]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMax = getValue(SettingsAdvancedInstitutional.DisinfectionFrequency)[max]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyDef = getValue(SettingsAdvancedInstitutional.DisinfectionFrequency)[def]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMin = getValue(SettingsAdvancedInstitutional.DisinfectionParametersCycleTime)[min]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMax = getValue(SettingsAdvancedInstitutional.DisinfectionParametersCycleTime)[max]
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeDef = getValue(SettingsAdvancedInstitutional.DisinfectionParametersCycleTime)[def]
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMin = getValue(SettingsAdvancedInstitutional.MaxBloodPumpStopTime)[min]
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMax = getValue(SettingsAdvancedInstitutional.MaxBloodPumpStopTime)[max]
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeDef = getValue(SettingsAdvancedInstitutional.MaxBloodPumpStopTime)[def]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMin = getValue(SettingsAdvancedInstitutional.InletWaterCondLowThreshold)[min]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMax = getValue(SettingsAdvancedInstitutional.InletWaterCondLowThreshold)[max]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdDef = getValue(SettingsAdvancedInstitutional.InletWaterCondLowThreshold)[def]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMin = getValue(SettingsAdvancedInstitutional.InletWaterCondHighThreshold)[min]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMax = getValue(SettingsAdvancedInstitutional.InletWaterCondHighThreshold)[max]
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdDef = getValue(SettingsAdvancedInstitutional.InletWaterCondHighThreshold)[def]
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMin = getValue(SettingsAdvancedInstitutional.ChlorineWaterSampleCheck)[min]
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMax = getValue(SettingsAdvancedInstitutional.ChlorineWaterSampleCheck)[max]
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckDef = getValue(SettingsAdvancedInstitutional.ChlorineWaterSampleCheck)[def]
+ vAdjustmentAdvancedInstitutionalRecord.waterSampleTestResultRequiredDef = getValue(SettingsAdvancedInstitutional.WaterSampleTestResultRequired)[defCustom]
+
+ vAdjustmentAdvancedInstitutionalRecord.doConfirm()
+ }
+
+ function getValue(vRecord) {
+ let delegateItem = _listView.itemAtIndex(vRecord)
+ if (delegateItem) {
+ return [ delegateItem.minValue, delegateItem.maxValue, delegateItem.defValue, delegateItem.defCustomValue ]
+ }
+ else {
+ return [ 0, 0, 0, 0 ]
+ }
+ }
+
+ function clearErrors() {
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMinRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckDefRejectionReason = Variables.noRejectReason
+ vAdjustmentAdvancedInstitutionalRecord.waterSampleTestResultRequiredDefRejectionReason = Variables.noRejectReason
+ }
+
+ Connections { target: vAdvancedInstitutionalRecord
+ function onAdjustmentTriggered ( vValue ) {
+ if ( vAdvancedInstitutionalRecord.adjustment_Accepted ) {
+ _root.notificationText = ""
+ initModel()
+ }
+ else {
+ _root.notificationText = vAdvancedInstitutionalRecord.adjustment_ReasonText
+ }
+ }
+ }
+
+ Connections { target: vAdjustmentAdvancedInstitutionalRecord
+ function onAdjustmentTriggered ( vValue ) {
+ if ( vAdjustmentAdvancedInstitutionalRecord.adjustment_Accepted ) {
+ _root.notificationText = qsTr("Advanced Institutional records and preferences updated")
+ clearErrors()
+ }
+ else {
+ _root.notificationText = qsTr("Error Adjusting Advanced Institutional Records")
+ }
+ }
+ }
+
+ // To populate model with parameter ranges and initial/ set value of each institutional setting
+ // min - minimum range from param ranges (DataList.conf)
+ // max - maximum range from param ranges (DataList.conf)
+ // step - step or resolution from param ranges (DataList.conf)
+ // minVal - minimum value from institutional settings in FW
+ // maxVin - maximum value from institutional settings in FW
+ // defVal - default value from institutional settings in FW
+ // decimal - preceision of value
+ // rejection- rejection re3ason from adjust record
+ function initModel() {
+ advancedInstitutionalModel.clear()
+ // Order matters
+ // MinRoRejectionRatio
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.minRORejectionRatioAlarmMin, "max" : vTreatmentRanges.minRORejectionRatioAlarmMax,
+ "step" : vTreatmentRanges.minRORejectionRatioAlarmRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.minRORejectionRatioAlarmMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.minRORejectionRatioAlarmMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.minRORejectionRatioAlarmDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.minRORejectionRatioAlarmDefRejectionReason });
+ // DisinfectionFrequency
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.disinfectionFrequencyMin, "max" : vTreatmentRanges.disinfectionFrequencyMax,
+ "step" : vTreatmentRanges.disinfectionFrequencyRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.disinfectionFrequencyMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.disinfectionFrequencyMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.disinfectionFrequencyDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.disinfectionFrequencyDefRejectionReason });
+ // DisinfectionParametersCycleTime
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.disinfectionParametersCycleTimeMin, "max" : vTreatmentRanges.disinfectionParametersCycleTimeMax,
+ "step" : vTreatmentRanges.disinfectionParametersCycleTimeRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.disinfectionParametersCycleTimeDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.disinfectionParametersCycleTimeDefRejectionReason});
+ // MaxBloodPumpStopTime
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.maxBloodPumpStopTimeMin, "max" : vTreatmentRanges.maxBloodPumpStopTimeMax,
+ "step" : vTreatmentRanges.maxBloodPumpStopTimeRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.maxBloodPumpStopTimeMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.maxBloodPumpStopTimeMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.maxBloodPumpStopTimeDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.maxBloodPumpStopTimeDefRejectionReason });
+ // InletWaterCondLowThreshold
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.inletWaterCondLowThresholdMin, "max" : vTreatmentRanges.inletWaterCondLowThresholdMax,
+ "step" : vTreatmentRanges.inletWaterCondLowThresholdRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.inletWaterCondLowThresholdMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.inletWaterCondLowThresholdMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.inletWaterCondLowThresholdDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondLowThresholdDefRejectionReason });
+ // InletWaterCondHighThreshold
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.inletWaterCondHighThresholdMin, "max" : vTreatmentRanges.inletWaterCondHighThresholdMax,
+ "step" : vTreatmentRanges.inletWaterCondHighThresholdRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.inletWaterCondHighThresholdMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.inletWaterCondHighThresholdMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.inletWaterCondHighThresholdDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.inletWaterCondHighThresholdDefRejectionReason });
+ // ChlorineWaterSampleCheck
+ advancedInstitutionalModel.append({ "min" : vTreatmentRanges.chlorineWaterSampleCheckMin, "max" : vTreatmentRanges.chlorineWaterSampleCheckMax,
+ "step" : vTreatmentRanges.chlorineWaterSampleCheckRes, "decimal" : 0,
+ "minVal": vAdvancedInstitutionalRecord.chlorineWaterSampleCheckMin, "rejectionMax": vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMaxRejectionReason,
+ "maxVal": vAdvancedInstitutionalRecord.chlorineWaterSampleCheckMax, "rejectionMin": vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckMinRejectionReason,
+ "defVal": vAdvancedInstitutionalRecord.chlorineWaterSampleCheckDef, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.chlorineWaterSampleCheckDefRejectionReason });
+ // WaterSampleTestResultRequired
+ advancedInstitutionalModel.append({ "min" : _root.none, "max" : _root.none,
+ "step" : _root.none, "decimal" : 0,
+ "minVal": _root.none, "defVal" : vAdvancedInstitutionalRecord.waterSampleTestResultRequiredDef,
+ "maxVal": _root.none, "rejectionDef": vAdjustmentAdvancedInstitutionalRecord.waterSampleTestResultRequiredDefRejectionReason });
+ }
+
+ ListModel { id: advancedInstitutionalModel }
+
+ component HeaderText: Text { id: _headerText
+ property string title : ""
+ property int leftMargin : Variables.defaultMargin * 8.5
+
+ anchors.verticalCenter : parent.verticalCenter
+ leftPadding : _headerText.leftMargin
+ width : _listContent.width / 4
+ text : _headerText.title
+ color : Colors.white
+ font.pixelSize : Fonts.fontPixelTextRectTitle
+ font.weight : Font.Medium
+ }
+
+ component RoFeatureIndicator: Rectangle { id: _roFeatureIndicator
+ property bool featured : false
+
+ width : 12
+ height : width
+ radius : width
+ color : featured ? Colors.roFeatured : Colors.roDefeatured
+ }
+
+ contentItem: Item { id: _listContent
+ anchors.fill : parent
+ readonly property int contentWith: _listView.width - Variables.defaultMargin * 2 // added margin to have scroll bar show on right
+ Item { id: _roFeatures
+ height : Variables.institutionaltContainerHeight
+
+ HeaderText { id: _roFeatureDescription
+ title : qsTr("RO Featured Devices")
+ leftMargin : Variables.defaultMargin * 2
+ width : _listContent.contentWith / 6
+
+ RoFeatureIndicator {
+ anchors {
+ left : parent.left
+ leftMargin : Variables.defaultMargin
+ verticalCenter : parent.verticalCenter
+ }
+ featured : true
+ }
+ }
+
+ HeaderText { id: _roDefeatureDescription
+ title : qsTr("RO Defeatured Devices")
+ leftMargin : Variables.defaultMargin * 2
+ anchors.left: _roFeatureDescription.right
+ width : _listContent.contentWith / 6
+
+
+ RoFeatureIndicator {
+ anchors {
+ left : parent.left
+ leftMargin : Variables.defaultMargin
+ verticalCenter : parent.verticalCenter
+ }
+ featured : false
+ }
+ }
+ }
+
+ Rectangle { id: _header
+ color : Colors.treatmentSectionHeader
+ height : Variables.institutionaltContainerHeight
+ width : _listContent.contentWith
+ radius : 8.5
+ anchors {
+ top :_roFeatures.bottom
+ topMargin : 10
+ }
+
+ Row {
+ width : _listContent.width
+ height : Variables.institutionaltContainerHeight
+
+ HeaderText { id: _parameters; title: qsTr("Parameters"); leftMargin: Variables.defaultMargin * 2 }
+ HeaderText { id: _minimum; title: qsTr("Minimum") }
+ HeaderText { id: _maximum; title: qsTr("Maximum") }
+ HeaderText { id: _default; title: qsTr("Default") }
+ }
+
+ layer.enabled : true
+ layer.effect: DropShadow {
+ id: _dropShadow
+ horizontalOffset: 0
+ verticalOffset : 3
+ radius : 3.0
+ samples : 7
+ color : "#50000000"
+ source : _header
+ anchors.fill : _header
+ }
+ }
+
+ ListView { id: _listView
+ anchors {
+ top :_header.bottom
+ topMargin : 10
+ left : parent.left
+ right : parent.right
+ bottom : parent.bottom
+ }
+ boundsBehavior : Flickable.StopAtBounds
+ clip : true
+ model : advancedInstitutionalModel
+ spacing : anchors.topMargin
+ flickableDirection : Flickable.VerticalFlick
+
+ delegate: InstitutionalContainer { id: _delegateControl
+ width : _listContent.contentWith
+ text : _root.title[index] === undefined ? "" : _root.title[index]
+ unitText : _root.unit[index] === undefined ? "" : _root.unit[index]
+ contentArea.anchors.leftMargin : width * 0.25
+
+ min : model.min
+ max : model.max
+ step : model.step
+ decimal : model.decimal
+ minVal : model.minVal
+ maxVal : model.maxVal
+ defVal : model.defVal
+ rejectionMin: model.rejectionMin
+ rejectionMax: model.rejectionMax
+ rejectionDef: model.rejectionDef
+ maxText : "NA"
+ minText : "NA"
+ defModel : index === SettingsAdvancedInstitutional.WaterSampleTestResultRequired ? vTreatmentRanges.waterSampleTestResultRequired : []
+
+ onGrabbedChanged: {
+ _listView.interactive = ! grabbed
+ }
+
+ RoFeatureIndicator {
+ anchors {
+ left : parent.left
+ leftMargin : 15
+ top : parent.top
+ topMargin : Variables.defaultMargin
+ }
+ featured : index === SettingsAdvancedInstitutional.InletWaterCondLowThreshold
+ visible : index === SettingsAdvancedInstitutional.InletWaterCondLowThreshold ||
+ index === SettingsAdvancedInstitutional.InletWaterCondHighThreshold ||
+ index === SettingsAdvancedInstitutional.WaterSampleTestResultRequired
+ }
+ }
+
+ ScrollBar { flickable: _listView }
+ }
+ }
+}
Index: sources/gui/qml/pages/settings/SettingsBase.qml
===================================================================
diff -u -r6e18f1d24b8cc3d84d26f46f36f73deb34e54371 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/settings/SettingsBase.qml (.../SettingsBase.qml) (revision 6e18f1d24b8cc3d84d26f46f36f73deb34e54371)
+++ sources/gui/qml/pages/settings/SettingsBase.qml (.../SettingsBase.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -113,6 +113,12 @@
imageSource : ""
text : ""
anchors.bottomMargin: _root.notificationMargin
+ anchors {
+ bottom : undefined
+ verticalCenter : _backButton.verticalCenter
+ left : _backButton.right
+ right : _confirmButton.left
+ }
}
onVisibleChanged: {
Index: sources/gui/qml/pages/settings/SettingsHome.qml
===================================================================
diff -u -r6e18f1d24b8cc3d84d26f46f36f73deb34e54371 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/settings/SettingsHome.qml (.../SettingsHome.qml) (revision 6e18f1d24b8cc3d84d26f46f36f73deb34e54371)
+++ sources/gui/qml/pages/settings/SettingsHome.qml (.../SettingsHome.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -39,7 +39,7 @@
signal itemClicked(int vIndex)
- contentArea.anchors.topMargin: Variables.defaultMargin * 5
+ contentArea.anchors.topMargin: serviceMode ? Variables.defaultMargin * 2 : 0
contentItem: TouchGrid { id: _settingItems
onItemClicked : _root.itemClicked(vIndex)
Index: sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml
===================================================================
diff -u -r934354462a353ff5e7fc2ddfe6f3a8f0121a8f3f -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml (.../SettingsInstitutionalRecord.qml) (revision 934354462a353ff5e7fc2ddfe6f3a8f0121a8f3f)
+++ sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml (.../SettingsInstitutionalRecord.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -1,50 +1,463 @@
/*!
*
- * Copyright (c) 2024-2024 Diality Inc. - All Rights Reserved.
+ * Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved.
* \copyright
* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
*
* \file SettingsInstitutionalRecord.qml
- * \author (last) Dara Navaei
- * \date (last) 19-Mar-2024
- * \author (original) Dara Navaei
- * \date (original) 28-Feb-2024
+ * \author (last) Nico Ramirez
+ * \date (last) 10-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 10-Nov-2025
*
*/
// Qt
import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtGraphicalEffects 1.12
// Qml imports
import "qrc:/globals"
import "qrc:/compounds"
+import "qrc:/components"
-
/*!
- * \brief SettingsInformation is the screen
+ * \brief SettingsInstitutionalRecord is the screen
* which queries the system for the versions and serial numbers and service records
* and display them
*/
SettingsBase { id: _root
itemIndex : SettingsStack.InstitutionalRecord
- confirmVisible : false
- contentArea.anchors.topMargin : Variables.defaultMargin * -1
+ contentArea.anchors.rightMargin : 0
+ confirmVisible : serviceMode
- contentItem: TouchGrid {
+ property bool canEdit : serviceMode
+ property var title : vInstitutionalRecord.parametersTitle
+ property var unit : vInstitutionalRecord.parametersUnit
- colCount : 2
- colSpacing : 50
- rowCount : 7 // this number indicates when to move to the next column
- rowSpacing : 0
- itemHeight : 50
- itemWidth : 550
- touchable : false
+ readonly property int min : 0
+ readonly property int max : 1
+ readonly property int def : 2
+ readonly property int defCustom : 3
- itemsValueLeftMargin: 325
- itemsUnitLeftMargin : 465
- itemsValue : vAdjustmentInstitutionalRecord.parametersText
- itemsUnit : vAdjustmentInstitutionalRecord.parametersUnit
- itemsText : vAdjustmentInstitutionalRecord.parametersTitle
+ readonly property int none : -1
+
+ enum Records {
+ BloodFlowRate ,
+ DialysateFlowRate ,
+ TreatmentDuration ,
+ HeparinBolusVolume ,
+ HeparinDispenseRate ,
+ HeparinStopTime ,
+ DialysateTemperature ,
+ AcidCompositionPotassium ,
+ AcidCompositionCalcium ,
+ BicarbFinalDialysateComposition ,
+ SodiumFinalDialysateComposition ,
+ FluidBolusVolume ,
+ ArterialPressureLimit ,
+ VenousPressureLimit ,
+ VenousAsymPressureLimit ,
+ TMPWindowLimit ,
+ UFVolume ,
+ VitalsInterval ,
+ RinsebackVolume ,
+ RinsebackFlowRate ,
+ SubstitutionVolume
}
+
+ onConfirmClicked: {
+ vAdjustmentInstitutionalRecord.bloodFlowRateMin = getValue(SettingsInstitutionalRecord.BloodFlowRate)[min]
+ vAdjustmentInstitutionalRecord.bloodFlowRateMax = getValue(SettingsInstitutionalRecord.BloodFlowRate)[max]
+ vAdjustmentInstitutionalRecord.bloodFlowRateDef = getValue(SettingsInstitutionalRecord.BloodFlowRate)[def]
+ vAdjustmentInstitutionalRecord.dialysateFlowRateMin = getValue(SettingsInstitutionalRecord.DialysateFlowRate)[min]
+ vAdjustmentInstitutionalRecord.dialysateFlowRateMax = getValue(SettingsInstitutionalRecord.DialysateFlowRate)[max]
+ vAdjustmentInstitutionalRecord.dialysateFlowRateDef = getValue(SettingsInstitutionalRecord.DialysateFlowRate)[def]
+ vAdjustmentInstitutionalRecord.treatmentDurationMin = getValue(SettingsInstitutionalRecord.TreatmentDuration)[min]
+ vAdjustmentInstitutionalRecord.treatmentDurationMax = getValue(SettingsInstitutionalRecord.TreatmentDuration)[max]
+ vAdjustmentInstitutionalRecord.treatmentDurationDef = getValue(SettingsInstitutionalRecord.TreatmentDuration)[def]
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeMin = getValue(SettingsInstitutionalRecord.HeparinBolusVolume)[min]
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeMax = getValue(SettingsInstitutionalRecord.HeparinBolusVolume)[max]
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeDef = getValue(SettingsInstitutionalRecord.HeparinBolusVolume)[def]
+ vAdjustmentInstitutionalRecord.heparinDispensingRateMin = getValue(SettingsInstitutionalRecord.HeparinDispenseRate)[min]
+ vAdjustmentInstitutionalRecord.heparinDispensingRateMax = getValue(SettingsInstitutionalRecord.HeparinDispenseRate)[max]
+ vAdjustmentInstitutionalRecord.heparinDispensingRateDef = getValue(SettingsInstitutionalRecord.HeparinDispenseRate)[def]
+ vAdjustmentInstitutionalRecord.heparinStopTimeMin = getValue(SettingsInstitutionalRecord.HeparinStopTime)[min]
+ vAdjustmentInstitutionalRecord.heparinStopTimeMax = getValue(SettingsInstitutionalRecord.HeparinStopTime)[max]
+ vAdjustmentInstitutionalRecord.dialysateTempMin = getValue(SettingsInstitutionalRecord.DialysateTemperature)[min]
+ vAdjustmentInstitutionalRecord.dialysateTempMax = getValue(SettingsInstitutionalRecord.DialysateTemperature)[max]
+ vAdjustmentInstitutionalRecord.dialysateTempDef = getValue(SettingsInstitutionalRecord.DialysateTemperature)[def]
+ vAdjustmentInstitutionalRecord.acidConcentratePotassiumMin = getValue(SettingsInstitutionalRecord.AcidCompositionPotassium)[min]
+ vAdjustmentInstitutionalRecord.acidConcentratePotassiumMax = getValue(SettingsInstitutionalRecord.AcidCompositionPotassium)[max]
+ vAdjustmentInstitutionalRecord.acidConcentrateCalciumMin = getValue(SettingsInstitutionalRecord.AcidCompositionCalcium)[min]
+ vAdjustmentInstitutionalRecord.acidConcentrateCalciumMax = getValue(SettingsInstitutionalRecord.AcidCompositionCalcium)[max]
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMin = getValue(SettingsInstitutionalRecord.BicarbFinalDialysateComposition)[min]
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMax = getValue(SettingsInstitutionalRecord.BicarbFinalDialysateComposition)[max]
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionDef = getValue(SettingsInstitutionalRecord.BicarbFinalDialysateComposition)[def]
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMin = getValue(SettingsInstitutionalRecord.SodiumFinalDialysateComposition)[min]
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMax = getValue(SettingsInstitutionalRecord.SodiumFinalDialysateComposition)[max]
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionDef = getValue(SettingsInstitutionalRecord.SodiumFinalDialysateComposition)[def]
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeMin = getValue(SettingsInstitutionalRecord.FluidBolusVolume)[min]
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeMax = getValue(SettingsInstitutionalRecord.FluidBolusVolume)[max]
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeDef = getValue(SettingsInstitutionalRecord.FluidBolusVolume)[def]
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMin = getValue(SettingsInstitutionalRecord.ArterialPressureLimit)[min]
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMax = getValue(SettingsInstitutionalRecord.ArterialPressureLimit)[max]
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowDef = getValue(SettingsInstitutionalRecord.ArterialPressureLimit)[def]
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowMin = getValue(SettingsInstitutionalRecord.VenousPressureLimit)[min]
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowMax = getValue(SettingsInstitutionalRecord.VenousPressureLimit)[max]
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowDef = getValue(SettingsInstitutionalRecord.VenousPressureLimit)[def]
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMin = getValue(SettingsInstitutionalRecord.VenousAsymPressureLimit)[min]
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMax = getValue(SettingsInstitutionalRecord.VenousAsymPressureLimit)[max]
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcDef = getValue(SettingsInstitutionalRecord.VenousAsymPressureLimit)[def]
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMin = getValue(SettingsInstitutionalRecord.TMPWindowLimit)[min]
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMax = getValue(SettingsInstitutionalRecord.TMPWindowLimit)[max]
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowDef = getValue(SettingsInstitutionalRecord.TMPWindowLimit)[def]
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMin = getValue(SettingsInstitutionalRecord.UFVolume)[min]
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMax = getValue(SettingsInstitutionalRecord.UFVolume)[max]
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeDef = getValue(SettingsInstitutionalRecord.UFVolume)[def]
+ vAdjustmentInstitutionalRecord.vitalsIntervalDef = getValue(SettingsInstitutionalRecord.VitalsInterval)[defCustom]
+ vAdjustmentInstitutionalRecord.rinsebackVolumeMin = getValue(SettingsInstitutionalRecord.RinsebackVolume)[min]
+ vAdjustmentInstitutionalRecord.rinsebackVolumeMax = getValue(SettingsInstitutionalRecord.RinsebackVolume)[max]
+ vAdjustmentInstitutionalRecord.rinsebackVolumeDef = getValue(SettingsInstitutionalRecord.RinsebackVolume)[def]
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateMin = getValue(SettingsInstitutionalRecord.RinsebackFlowRate)[min]
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateMax = getValue(SettingsInstitutionalRecord.RinsebackFlowRate)[max]
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateDef = getValue(SettingsInstitutionalRecord.RinsebackFlowRate)[def]
+ vAdjustmentInstitutionalRecord.substitutionVolumeMin = getValue(SettingsInstitutionalRecord.SubstitutionVolume)[min]
+ vAdjustmentInstitutionalRecord.substitutionVolumeMax = getValue(SettingsInstitutionalRecord.SubstitutionVolume)[max]
+ vAdjustmentInstitutionalRecord.substitutionVolumeDef = getValue(SettingsInstitutionalRecord.SubstitutionVolume)[def]
+
+ vAdjustmentInstitutionalRecord.doConfirm()
+ }
+
+ function getValue(vRecord) {
+ let delegateItem = _listView.itemAtIndex(vRecord)
+ if (delegateItem) {
+ return [ delegateItem.minValue, delegateItem.maxValue, delegateItem.defValue, delegateItem.defCustomValue ]
+ }
+ else {
+ return [ 0, 0, 0, 0 ]
+ }
+ }
+
+ function clearErrors() {
+ vAdjustmentInstitutionalRecord.bloodFlowRateMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.bloodFlowRateMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.bloodFlowRateDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateFlowRateMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateFlowRateMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateFlowRateDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.treatmentDurationMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.treatmentDurationMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.treatmentDurationDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinBolusVolumeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinDispensingRateMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinDispensingRateMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinDispensingRateDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinStopTimeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.heparinStopTimeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateTempMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateTempMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.dialysateTempDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.acidConcentratePotassiumMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.acidConcentratePotassiumMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.acidConcentrateCalciumMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.acidConcentrateCalciumMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.fluidBolusVolumeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.arterialPressureLimitWindowDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitWindowDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.ultrafiltrationVolumeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.vitalsIntervalDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackVolumeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackVolumeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackVolumeDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.rinsebackFlowRateDefRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.substitutionVolumeMinRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.substitutionVolumeMaxRejectionReason = Variables.noRejectReason
+ vAdjustmentInstitutionalRecord.substitutionVolumeDefRejectionReason = Variables.noRejectReason
+ }
+
+ Connections { target: vInstitutionalRecord
+ function onAdjustmentTriggered ( vValue ) {
+ if ( vInstitutionalRecord.adjustment_Accepted ) {
+ _root.notificationText = ""
+ initModel()
+ }
+ else {
+ _root.notificationText = vInstitutionalRecord.adjustment_ReasonText
+ }
+ }
+ }
+
+ Connections { target: vAdjustmentInstitutionalRecord
+ function onAdjustmentTriggered ( vValue ) {
+ if ( vAdjustmentInstitutionalRecord.adjustment_Accepted ) {
+ _root.notificationText = qsTr("Institutional records and preferences updated")
+ clearErrors()
+ }
+ else {
+ _root.notificationText = qsTr("Error Adjusting Institutional Records")
+ }
+ }
+ }
+
+ // To populate model with parameter ranges and initial/ set value of each institutional setting
+ // min - minimum range from param ranges (DataList.conf)
+ // max - maximum range from param ranges (DataList.conf)
+ // step - step or resolution from param ranges (DataList.conf)
+ // minVal - minimum value from institutional settings in FW
+ // maxVin - maximum value from institutional settings in FW
+ // defVal - default value from institutional settings in FW
+ // decimal - preceision of value
+ // rejection- rejection re3ason from adjust record
+ function initModel() {
+ institutionalModel.clear()
+ // Order matters
+ // BloodFlowRate
+ institutionalModel.append({ "min" : vTreatmentRanges.bloodFlowRateMin, "max" : vTreatmentRanges.bloodFlowRateMax,
+ "step" : vTreatmentRanges.bloodFlowRateRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.bloodFlowRateMin, "rejectionMax": vAdjustmentInstitutionalRecord.bloodFlowRateMaxRejectionReason,
+ "maxVal": vInstitutionalRecord.bloodFlowRateMax, "rejectionMin": vAdjustmentInstitutionalRecord.bloodFlowRateMinRejectionReason,
+ "defVal": vInstitutionalRecord.bloodFlowRateDef, "rejectionDef": vAdjustmentInstitutionalRecord.bloodFlowRateDefRejectionReason });
+ // DialysateFlowRate
+ institutionalModel.append({ "min" : vTreatmentRanges.dialysateFlowRateMin, "max" : vTreatmentRanges.dialysateFlowRateMax,
+ "step" : vTreatmentRanges.dialysateFlowRateRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.dialysateFlowRateMin, "rejectionMin": vAdjustmentInstitutionalRecord.dialysateFlowRateMinRejectionReason,
+ "maxVal": vInstitutionalRecord.dialysateFlowRateMax, "rejectionMax": vAdjustmentInstitutionalRecord.dialysateFlowRateMaxRejectionReason,
+ "defVal": vInstitutionalRecord.dialysateFlowRateDef, "rejectionDef": vAdjustmentInstitutionalRecord.dialysateFlowRateDefRejectionReason });
+ // TreatmentDuration
+ institutionalModel.append({ "min" : vTreatmentRanges.treatmentDurationMin, "max" : vTreatmentRanges.treatmentDurationMax,
+ "step" : vTreatmentRanges.treatmentDurationRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.treatmentDurationMin, "rejectionMin": vAdjustmentInstitutionalRecord.treatmentDurationMinRejectionReason,
+ "maxVal": vInstitutionalRecord.treatmentDurationMax, "rejectionMax": vAdjustmentInstitutionalRecord.treatmentDurationMaxRejectionReason,
+ "defVal": vInstitutionalRecord.treatmentDurationDef, "rejectionDef": vAdjustmentInstitutionalRecord.treatmentDurationDefRejectionReason });
+ // HeparinBolusVolume
+ institutionalModel.append({ "min" : vTreatmentRanges.heparinBolusVolumeMin, "max" : vTreatmentRanges.heparinBolusVolumeMax,
+ "step" : vTreatmentRanges.heparinBolusVolumeRes, "decimal" : Variables.heparinPrecision, "canOff": true,
+ "minVal": vInstitutionalRecord.heparinBolusVolumeMin, "rejectionMin": vAdjustmentInstitutionalRecord.heparinBolusVolumeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.heparinBolusVolumeMax, "rejectionMax": vAdjustmentInstitutionalRecord.heparinBolusVolumeMaxRejectionReason,
+ "defVal": vInstitutionalRecord.heparinBolusVolumeDef, "rejectionDef": vAdjustmentInstitutionalRecord.heparinBolusVolumeDefRejectionReason });
+ // HeparinDispenseRate
+ institutionalModel.append({ "min" : vTreatmentRanges.heparinDispensingRateMin, "max" : vTreatmentRanges.heparinDispensingRateMax,
+ "step" : vTreatmentRanges.heparinDispensingRateRes, "decimal" : Variables.heparinPrecision, "canOff": true,
+ "minVal": vInstitutionalRecord.heparinDispensingRateMin, "rejectionMin": vAdjustmentInstitutionalRecord.heparinDispensingRateMinRejectionReason,
+ "maxVal": vInstitutionalRecord.heparinDispensingRateMax, "rejectionMax": vAdjustmentInstitutionalRecord.heparinDispensingRateMaxRejectionReason,
+ "defVal": vInstitutionalRecord.heparinDispensingRateDef, "rejectionDef": vAdjustmentInstitutionalRecord.heparinDispensingRateDefRejectionReason });
+ // HeparinStopTime
+ institutionalModel.append({ "min" : vTreatmentRanges.heparinStopTimeMin, "max" : vTreatmentRanges.treatmentDurationMax,
+ "step" : vTreatmentRanges.treatmentDurationRes, "decimal" : 0, "canOff": true,
+ "minVal": vInstitutionalRecord.heparinStopTimeMin, "rejectionMin": vAdjustmentInstitutionalRecord.heparinStopTimeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.heparinStopTimeMax, "rejectionMax": vAdjustmentInstitutionalRecord.heparinStopTimeMaxRejectionReason,
+ "defVal": _root.none });
+ // DialysateTemperature
+ institutionalModel.append({ "min" : vTreatmentRanges.dialysateTempMin, "max" : vTreatmentRanges.dialysateTempMax,
+ "step" : vTreatmentRanges.dialysateTempRes, "decimal" : Variables.dialysateTempPrecision,
+ "minVal": vInstitutionalRecord.dialysateTempMin, "rejectionMin": vAdjustmentInstitutionalRecord.dialysateTempMinRejectionReason,
+ "maxVal": vInstitutionalRecord.dialysateTempMax, "rejectionMax": vAdjustmentInstitutionalRecord.dialysateTempMaxRejectionReason,
+ "defVal": vInstitutionalRecord.dialysateTempDef, "rejectionDef": vAdjustmentInstitutionalRecord.dialysateTempDefRejectionReason });
+ // AcidCompositionPotassium
+ institutionalModel.append({ "min" : vTreatmentRanges.acidConcentratePotassiumMin, "max" : vTreatmentRanges.acidConcentratePotassiumMax,
+ "step" : vTreatmentRanges.acidConcentratePotassiumRes, "decimal" : Variables.potassiumPrecision,
+ "minVal": vInstitutionalRecord.acidConcentratePotassiumMin, "rejectionMin": vAdjustmentInstitutionalRecord.acidConcentratePotassiumMinRejectionReason,
+ "maxVal": vInstitutionalRecord.acidConcentratePotassiumMax, "rejectionMax": vAdjustmentInstitutionalRecord.acidConcentratePotassiumMaxRejectionReason,
+ "defVal": _root.none, });
+ // AcidCompositionCalcium
+ institutionalModel.append({ "min" : vTreatmentRanges.acidConcentrateCalciumMin, "max" : vTreatmentRanges.acidConcentrateCalciumMax,
+ "step" : vTreatmentRanges.acidConcentrateCalciumRes, "decimal" : Variables.calciumPrecision,
+ "minVal": vInstitutionalRecord.acidConcentrateCalciumMin, "rejectionMin": vAdjustmentInstitutionalRecord.acidConcentrateCalciumMinRejectionReason,
+ "maxVal": vInstitutionalRecord.acidConcentrateCalciumMax, "rejectionMax": vAdjustmentInstitutionalRecord.acidConcentrateCalciumMaxRejectionReason,
+ "defVal": _root.none });
+ // BicarbFinalDialysateComposition
+ institutionalModel.append({ "min" : vTreatmentRanges.dialysateBicarbonateMin, "max" : vTreatmentRanges.dialysateBicarbonateMax,
+ "step" : vTreatmentRanges.dialysateBicarbonateRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.bicarbFinalDialysateCompositionMin, "rejectionMin": vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMinRejectionReason,
+ "maxVal": vInstitutionalRecord.bicarbFinalDialysateCompositionMax, "rejectionMax": vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionMaxRejectionReason,
+ "defVal": vInstitutionalRecord.bicarbFinalDialysateCompositionDef, "rejectionDef": vAdjustmentInstitutionalRecord.bicarbFinalDialysateCompositionDefRejectionReason });
+ // SodiumFinalDialysateComposition
+ institutionalModel.append({ "min" : vTreatmentRanges.dialysateSodiumMin, "max" : vTreatmentRanges.dialysateSodiumMax,
+ "step" : vTreatmentRanges.dialysateSodiumRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.sodiumFinalDialysateCompositionMin, "rejectionMin": vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMinRejectionReason,
+ "maxVal": vInstitutionalRecord.sodiumFinalDialysateCompositionMax, "rejectionMax": vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionMaxRejectionReason,
+ "defVal": vInstitutionalRecord.sodiumFinalDialysateCompositionDef, "rejectionDef": vAdjustmentInstitutionalRecord.sodiumFinalDialysateCompositionDefRejectionReason });
+ // FluidBolusVolume
+ institutionalModel.append({ "min" : vTreatmentRanges.salineBolusVolumeMin, "max" : vTreatmentRanges.salineBolusVolumeMax,
+ "step" : vTreatmentRanges.salineBolusVolumeRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.fluidBolusVolumeMin, "rejectionMin": vAdjustmentInstitutionalRecord.fluidBolusVolumeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.fluidBolusVolumeMax, "rejectionMax": vAdjustmentInstitutionalRecord.fluidBolusVolumeMaxRejectionReason,
+ "defVal": vInstitutionalRecord.fluidBolusVolumeDef, "rejectionDef": vAdjustmentInstitutionalRecord.fluidBolusVolumeDefRejectionReason });
+ // ArterialPressureLimit
+ institutionalModel.append({ "min" : vTreatmentRanges.arterialPressureLimitWindowMin, "max" : vTreatmentRanges.arterialPressureLimitWindowMax,
+ "step" : vTreatmentRanges.arterialPressureLimitWindowRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.arterialPressureLimitWindowMin, "rejectionMin": vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMinRejectionReason,
+ "maxVal": vInstitutionalRecord.arterialPressureLimitWindowMax, "rejectionMax": vAdjustmentInstitutionalRecord.arterialPressureLimitWindowMaxRejectionReason,
+ "defVal": vInstitutionalRecord.arterialPressureLimitWindowDef, "rejectionDef": vAdjustmentInstitutionalRecord.arterialPressureLimitWindowDefRejectionReason });
+ // VenousPressureLimit
+ institutionalModel.append({ "min" : vTreatmentRanges.venousPressureLimitWindowMin, "max" : vTreatmentRanges.venousPressureLimitWindowMax,
+ "step" : vTreatmentRanges.venousPressureLimitWindowRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.venousPressureLimitWindowMin, "rejectionMin": vAdjustmentInstitutionalRecord.venousPressureLimitWindowMinRejectionReason,
+ "maxVal": vInstitutionalRecord.venousPressureLimitWindowMax, "rejectionMax": vAdjustmentInstitutionalRecord.venousPressureLimitWindowMaxRejectionReason,
+ "defVal": vInstitutionalRecord.venousPressureLimitWindowDef, "rejectionDef": vAdjustmentInstitutionalRecord.venousPressureLimitWindowDefRejectionReason });
+ // VenousAsymPressureLimit
+ institutionalModel.append({ "min" : vTreatmentRanges.venousPressureLimitAsymtrcMin, "max" : vTreatmentRanges.venousPressureLimitAsymtrcMax,
+ "step" : vTreatmentRanges.venousPressureLimitAsymtrcRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.venousPressureLimitAsymtrcMin, "rejectionMin": vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMinRejectionReason,
+ "maxVal": vInstitutionalRecord.venousPressureLimitAsymtrcMax, "rejectionMax": vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcMaxRejectionReason,
+ "defVal": vInstitutionalRecord.venousPressureLimitAsymtrcDef, "rejectionDef": vAdjustmentInstitutionalRecord.venousPressureLimitAsymtrcDefRejectionReason });
+ // TMPWindowLimit
+ institutionalModel.append({ "min" : vTreatmentRanges.trancembrncPressureLimitWindowMin, "max" : vTreatmentRanges.trancembrncPressureLimitWindowMax,
+ "step" : vTreatmentRanges.trancembrncPressureLimitWindowRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.trancembrncPressureLimitWindowMin, "rejectionMin": vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMinRejectionReason,
+ "maxVal": vInstitutionalRecord.trancembrncPressureLimitWindowMax, "rejectionMax": vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowMaxRejectionReason,
+ "defVal": vInstitutionalRecord.trancembrncPressureLimitWindowDef, "rejectionDef": vAdjustmentInstitutionalRecord.trancembrncPressureLimitWindowDefRejectionReason });
+ // UFVolume
+ institutionalModel.append({ "min" : vTreatmentRanges.ultrafiltrationVolumeMin, "max" : vTreatmentRanges.ultrafiltrationVolumeMax,
+ "step" : vTreatmentRanges.ultrafiltrationVolumeRes, "decimal" : Variables.ultrafiltrationPrecision,
+ "minVal": vInstitutionalRecord.ultrafiltrationVolumeMin, "rejectionMin": vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.ultrafiltrationVolumeMax, "rejectionMax": vAdjustmentInstitutionalRecord.ultrafiltrationVolumeMaxRejectionReason,
+ "defVal": vInstitutionalRecord.ultrafiltrationVolumeDef, "rejectionDef": vAdjustmentInstitutionalRecord.ultrafiltrationVolumeDefRejectionReason });
+ // VitalsInterval
+ institutionalModel.append({ "min" : 5, "max" : 60, "canOff": true,
+ "minVal": 5, "step": 0, "decimal": 0,
+ "maxVal": 60,
+ "defVal": vInstitutionalRecord.vitalsIntervalDef, "rejectionDef": vAdjustmentInstitutionalRecord.vitalsIntervalDefRejectionReason });
+ // RinsebackVolume
+ institutionalModel.append({ "min" : vTreatmentRanges.rinsebackVolumeMin, "max" : vTreatmentRanges.rinsebackVolumeMax,
+ "step" : vTreatmentRanges.rinsebackVolumeRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.rinsebackVolumeMin, "rejectionMin": vAdjustmentInstitutionalRecord.rinsebackVolumeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.rinsebackVolumeMax, "rejectionMax": vAdjustmentInstitutionalRecord.rinsebackVolumeMaxRejectionReason,
+ "defVal": vInstitutionalRecord.rinsebackVolumeDef, "rejectionDef": vAdjustmentInstitutionalRecord.rinsebackVolumeDefRejectionReason });
+ // RinsebackFlowRate
+ institutionalModel.append({ "min" : vTreatmentRanges.rinsebackFlowRateMin, "max" : vTreatmentRanges.rinsebackFlowRateMax,
+ "step" : vTreatmentRanges.rinsebackFlowRateRes, "decimal" : 0,
+ "minVal": vInstitutionalRecord.rinsebackFlowRateMin, "rejectionMin": vAdjustmentInstitutionalRecord.rinsebackFlowRateMinRejectionReason,
+ "maxVal": vInstitutionalRecord.rinsebackFlowRateMax, "rejectionMax": vAdjustmentInstitutionalRecord.rinsebackFlowRateMaxRejectionReason,
+ "defVal": vInstitutionalRecord.rinsebackFlowRateDef, "rejectionDef": vAdjustmentInstitutionalRecord.rinsebackFlowRateDefRejectionReason });
+ // SubstitutionVolume
+ institutionalModel.append({ "min" : vTreatmentRanges.substitutionVolumeMin, "max" : vTreatmentRanges.substitutionVolumeMax,
+ "step" : vTreatmentRanges.substitutionVolumeRes, "decimal" : Variables.substitutionPrecision,
+ "minVal": vInstitutionalRecord.substitutionVolumeMin, "rejectionMin": vAdjustmentInstitutionalRecord.substitutionVolumeMinRejectionReason,
+ "maxVal": vInstitutionalRecord.substitutionVolumeMax, "rejectionMax": vAdjustmentInstitutionalRecord.substitutionVolumeMaxRejectionReason,
+ "defVal": vInstitutionalRecord.substitutionVolumeDef, "rejectionDef": vAdjustmentInstitutionalRecord.substitutionVolumeDefRejectionReason });
+ }
+
+ ListModel { id: institutionalModel }
+
+ component HeaderText: Text { id: _headerText
+ property string title : ""
+ property int leftMargin : Variables.defaultMargin * 8.5
+
+ anchors.verticalCenter : parent.verticalCenter
+ leftPadding : _headerText.leftMargin
+ width : _listContent.width / 4
+ text : _headerText.title
+ color : Colors.white
+ font.pixelSize : Fonts.fontPixelTextRectTitle
+ font.weight : Font.Medium
+ }
+
+ contentItem: Item { id: _listContent
+ anchors.fill : parent
+ readonly property int contentWith: _listView.width - Variables.defaultMargin * 2 // added margin to have scroll bar show on right
+
+ Rectangle { id: _header
+ color : Colors.treatmentSectionHeader
+ height : Variables.institutionaltContainerHeight
+ width : _listContent.contentWith
+ radius : 8.5
+
+ Row {
+ width : _listContent.width
+ height : Variables.institutionaltContainerHeight
+
+ HeaderText { id: _parameters; title: qsTr("Parameters"); leftMargin: Variables.defaultMargin * 2 }
+ HeaderText { id: _minimum; title: qsTr("Minimum") }
+ HeaderText { id: _maximum; title: qsTr("Maximum") }
+ HeaderText { id: _default; title: qsTr("Default") }
+ }
+
+ layer.enabled : true
+ layer.effect: DropShadow {
+ id: _dropShadow
+ horizontalOffset: 0
+ verticalOffset : 3
+ radius : 3.0
+ samples : 7
+ color : "#50000000"
+ source : _header
+ anchors.fill : _header
+ }
+ }
+
+ ListView { id: _listView
+ anchors {
+ top :_header.bottom
+ topMargin : 10
+ left : parent.left
+ right : parent.right
+ bottom : parent.bottom
+ }
+ boundsBehavior : Flickable.StopAtBounds
+ clip : true
+ model : institutionalModel
+ spacing : anchors.topMargin
+ flickableDirection : Flickable.VerticalFlick
+
+ delegate: InstitutionalContainer { id: _delegateControl
+ width : _listContent.contentWith
+ text : _root.title[index] === undefined ? "" : _root.title[index]
+ unitText : _root.unit[index] === undefined ? "" : _root.unit[index]
+ contentArea.anchors.leftMargin : width * 0.25
+
+ min : model.min
+ max : model.max
+ step : model.step
+ decimal : model.decimal
+ canOff : model.canOff
+ minEditable : _root.canEdit && index !== SettingsInstitutionalRecord.VitalsInterval
+ maxEditable : _root.canEdit && index !== SettingsInstitutionalRecord.VitalsInterval
+ defEditable : _root.canEdit
+ defCustomEditable: _root.canEdit
+ minVal : model.minVal
+ maxVal : model.maxVal
+ defVal : model.defVal
+ rejectionMin: model.rejectionMin
+ rejectionMax: model.rejectionMax
+ rejectionDef: model.rejectionDef
+ defText : index === SettingsInstitutionalRecord.HeparinStopTime ? qsTr("Treatment Duration") : qsTr("NA")
+ defModel : index === SettingsInstitutionalRecord.VitalsInterval ? ["0", "5", "10", "15", "30", "60"] : [] // TODO update for Vitals interval FROM STAGING!!!
+
+ onGrabbedChanged: {
+ _listView.interactive = ! grabbed
+ }
+ }
+
+
+ ScrollBar { flickable: _listView }
+ }
+ }
}
Index: sources/gui/qml/pages/settings/SettingsStack.qml
===================================================================
diff -u -r1bc34c23575fe101b85c851cff245436394d7123 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 1bc34c23575fe101b85c851cff245436394d7123)
+++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -70,53 +70,56 @@
readonly property bool visibleDeviceConfiguration : onlyManufacturing && loggedIn
readonly property bool visibleDeviceRegistration : onlyManufacturing && loggedIn
readonly property bool visibleInstitutionalRecord : true
+ readonly property bool visibleAdvancedInstitutional : loggedIn
readonly property bool visibleLocalization : loggedIn
readonly property bool visibleUserModes : loggedIn
readonly property string settingsTitle : _GuiView.manufactSetup ? qsTr("Manufacturing Setup") : _GuiView.updateSetup
? qsTr("Software Update") : qsTr("Device Settings")
enum ItemsIndex {
- Information ,
- VolumeBrightness ,
- WiFi ,
- DGCleaning ,
- DGScheduling ,
- ServicePassword ,
- SetDateTime ,
- ExportLogs ,
- Localization ,
- RoInput ,
- Calibration ,
- DeviceConfiguration ,
- DeviceRegistration ,
- SWUpdate ,
- RootSSHAccess ,
- FactoryReset ,
- Decommission ,
- InstitutionalRecord ,
+ Information ,
+ VolumeBrightness ,
+ WiFi ,
+ DGCleaning ,
+ DGScheduling ,
+ ServicePassword ,
+ SetDateTime ,
+ ExportLogs ,
+ Localization ,
+ RoInput ,
+ Calibration ,
+ DeviceConfiguration ,
+ DeviceRegistration ,
+ SWUpdate ,
+ RootSSHAccess ,
+ FactoryReset ,
+ Decommission ,
+ InstitutionalRecord ,
+ AdvancedInstitutional ,
UserMode
}
property var itemsText : [
- qsTr("Device Information" ), // Device Information
- qsTr("Volume And Brightness" ), // VolumeBrightness
- qsTr("Wi-Fi" ), // WiFi
- qsTr("Device Cleaning" ), // DGCleaning
- qsTr("DG Scheduling" ), // DGScheduling
- qsTr("Service" ), // servicePassword
- qsTr("Date and Time" ), // SetDateTime
- qsTr("Export Logs" ), // ExportLogs
- qsTr("Language" ), // Localization
- qsTr("Water Input Mode" ), // RoInput
- qsTr("Calibration" ), // Calibration
- qsTr("Device Configuration" ), // Device Configuration
- qsTr("Device Registration" ), // DeviceRegistration
- qsTr("Software Update" ), // SWUpdate
- qsTr("Enable Root SSH" ), // RootSSHAccess
- qsTr("Factory Reset" ), // FactoryReset
- qsTr("Decommissioning" ), // Decommission
- qsTr("Institutional Configurations" ), // Institutional Configurations
- qsTr("User Modes" ), // User Modes
+ qsTr("Device Information" ), // Device Information
+ qsTr("Volume And Brightness" ), // VolumeBrightness
+ qsTr("Wi-Fi" ), // WiFi
+ qsTr("Device Cleaning" ), // DGCleaning
+ qsTr("DG Scheduling" ), // DGScheduling
+ qsTr("Service" ), // servicePassword
+ qsTr("Date and Time" ), // SetDateTime
+ qsTr("Export Logs" ), // ExportLogs
+ qsTr("Language" ), // Localization
+ qsTr("Water Input Mode" ), // RoInput
+ qsTr("Calibration" ), // Calibration
+ qsTr("Device Configuration" ), // Device Configuration
+ qsTr("Device Registration" ), // DeviceRegistration
+ qsTr("Software Update" ), // SWUpdate
+ qsTr("Enable Root SSH" ), // RootSSHAccess
+ qsTr("Factory Reset" ), // FactoryReset
+ qsTr("Decommissioning" ), // Decommission
+ qsTr("Institutional Settings" ), // Institutional Configurations
+ qsTr("Advanced Institutional Settings" ), // AdvancedInstitutional
+ qsTr("User Modes" ), // User Modes
]
property var itemsVisible : [
@@ -138,6 +141,7 @@
visibleFactoryReset , // FactoryReset
visibleDecommission , // Decommission
visibleInstitutionalRecord , // Institutional Record
+ visibleAdvancedInstitutional , // AdvancedInstitutional
visibleUserModes , // User Modes
]
@@ -232,10 +236,15 @@
break
case SettingsStack.InstitutionalRecord:
- vAdjustmentInstitutionalRecord.doAdjustment()
+ vInstitutionalRecord.doAdjustment()
push( _settingsInstitutionalRecord )
break
+ case SettingsStack.AdvancedInstitutional:
+ vAdvancedInstitutionalRecord.doAdjustment()
+ push( _settingsAdvancedInstitutional )
+ break
+
case SettingsStack.Localization:
push( _settingLocalization )
break
@@ -251,23 +260,24 @@
}
}
- SettingsInformation { id: _settingsInformation }
- SettingsVolumeBrightness { id: _settingsVolumeBrightness }
- SettingsWiFi { id: _settingsWiFi }
- SettingsDGCleaning { id: _settingsDGCleaning }
- SettingsDGScheduling { id: _settingsDGScheduling }
- SettingsServicePassword { id: _servicePassword }
- SettingsDateTime { id: _settingsDateTime }
- SettingsExportLogs { id: _settingsExportLogs }
- SettingsROInput { id: _settingsRoInput }
- SettingsManufacturingSetup { id: _settingsDeviceConfiguration }
- SettingsDeviceRegistration { id: _settingsDeviceRegistration }
- SettingsRootSSHAccess { id: _SettingsRootSSHAccess }
- SettingsFactoryReset { id: _serviceFactoryReset }
- SettingsDecommission { id: _serviceDecommission }
- SettingsInstitutionalRecord { id: _settingsInstitutionalRecord }
- SettingsLocalization { id: _settingLocalization }
- SettingsUserMode { id: _settingUserMode }
+ SettingsInformation { id: _settingsInformation }
+ SettingsVolumeBrightness { id: _settingsVolumeBrightness }
+ SettingsWiFi { id: _settingsWiFi }
+ SettingsDGCleaning { id: _settingsDGCleaning }
+ SettingsDGScheduling { id: _settingsDGScheduling }
+ SettingsServicePassword { id: _servicePassword }
+ SettingsDateTime { id: _settingsDateTime }
+ SettingsExportLogs { id: _settingsExportLogs }
+ SettingsROInput { id: _settingsRoInput }
+ SettingsManufacturingSetup { id: _settingsDeviceConfiguration }
+ SettingsDeviceRegistration { id: _settingsDeviceRegistration }
+ SettingsRootSSHAccess { id: _SettingsRootSSHAccess }
+ SettingsFactoryReset { id: _serviceFactoryReset }
+ SettingsDecommission { id: _serviceDecommission }
+ SettingsInstitutionalRecord { id: _settingsInstitutionalRecord }
+ SettingsAdvancedInstitutional { id: _settingsAdvancedInstitutional}
+ SettingsLocalization { id: _settingLocalization }
+ SettingsUserMode { id: _settingUserMode }
function gotoServiceMode( vservice ) {
//DEBUG console.log (" 0 ---------- ", _GuiView.manufactMode, _GuiView.manufactSetup, vservice, stackView.initialItem, stackView.currentItem, stackView.depth)
@@ -288,17 +298,6 @@
}
}
- Connections { target: vAdjustmentInstitutionalRecord
- function onAdjustmentTriggered ( vValue ) {
- if ( vAdjustmentInstitutionalRecord.adjustment_Accepted ) {
- _settingsHome.notificationText = ""
- }
- else {
- _settingsHome.notificationText = vAdjustmentInstitutionalRecord.text()
- }
- }
- }
-
Connections { target: vTDOpMode
function onServiceChanged ( vValue ) { gotoServiceMode( vValue )}
function onStandbyWaitDisinfectChanged ( vValue ) { page( _settingsHome , vValue )}
Index: sources/main.h
===================================================================
diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/main.h (.../main.h) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1)
+++ sources/main.h (.../main.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -327,6 +327,11 @@
READONLY( vTYPE , vVARIABLE##Res , vDEFVALUE ) \
READONLY( vTYPE , vVARIABLE##Def , vDEFVALUE )
//--------------------------------------------------------------------------------//
+#define RANGEVALUESET( vTYPE , vVARIABLE , vDEFVALUE ) \
+ VALUESET( vTYPE , vVARIABLE##Min , vDEFVALUE ) \
+ VALUESET( vTYPE , vVARIABLE##Max , vDEFVALUE ) \
+ VALUESET( vTYPE , vVARIABLE##Def , vDEFVALUE )
+//--------------------------------------------------------------------------------//
#define MEMBER( vTYPE , vVARIABLE , vDEFVALUE ) \
private: \
vTYPE _##vVARIABLE = vDEFVALUE; \
Index: sources/model/MModel.h
===================================================================
diff -u -r6e18f1d24b8cc3d84d26f46f36f73deb34e54371 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/model/MModel.h (.../MModel.h) (revision 6e18f1d24b8cc3d84d26f46f36f73deb34e54371)
+++ sources/model/MModel.h (.../MModel.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -97,7 +97,10 @@
#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"
@@ -515,6 +518,12 @@
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 ) \
@@ -673,7 +682,9 @@
/* 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 */ \
@@ -732,6 +743,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 ) \
@@ -893,8 +907,10 @@
/* 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 */ \
@@ -953,6 +969,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 ) \
@@ -1014,6 +1033,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 ) \
@@ -1075,6 +1097,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 ) \
@@ -1220,8 +1245,10 @@
/* Settings - HD data response */ \
ACTION_RECEIVE_SIGNAL( HDUsageInfoResponseData ) \
ACTION_RECEIVE_SIGNAL( AdjustInstitutionalRecordResponseData ) \
+ ACTION_RECEIVE_SIGNAL( InstitutionalRecordResponseData ) \
+ ACTION_RECEIVE_SIGNAL( AdjustAdvancedInstitutionalRecordResponseData ) \
+ ACTION_RECEIVE_SIGNAL( AdvancedInstitutionalRecordResponseData ) \
-
//--------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------//
Fisheye: Tag e49c956894f999f6539b0c404dd1c9b18a76bb4b refers to a dead (removed) revision in file `sources/model/hd/adjustment/settings/MAdjustHDInstitutionalRecordResponse.cpp'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag e49c956894f999f6539b0c404dd1c9b18a76bb4b refers to a dead (removed) revision in file `sources/model/hd/adjustment/settings/MAdjustHDInstitutionalRecordResponse.h'.
Fisheye: No comparison available. Pass `N' to diff?
Index: sources/model/hd/adjustment/settings/MAdjustHDRequests.h
===================================================================
diff -u -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/model/hd/adjustment/settings/MAdjustHDRequests.h (.../MAdjustHDRequests.h) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601)
+++ sources/model/hd/adjustment/settings/MAdjustHDRequests.h (.../MAdjustHDRequests.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -272,8 +272,8 @@
};
/*!
- * \brief The MAdjustInstitutionalReqclass
- * \details The HD Service Mode request model
+ * \brief The MInstitutionalRecordReq
+ * \details The TD Institutional request model
*
* | MSG | CAN ID | Type | Ack | Src | Dest | Description |
* |:------:|:------:|:----:|:---:|:---:|:----:|:-----------:|
@@ -284,7 +284,7 @@
* | (N/A) ||
*
*/
-class MAdjustInstitutionalRecordReq : public MModel {
+class MInstitutionalRecordReq : public MModel {
public:
QString toString() {
@@ -298,6 +298,328 @@
};
/*!
+* \brief The MAdjustInstitutionalReq
+ * \details The TD Institutional request model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+* |:------:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * | 0x8900 | 0x100 | Req | Y | UI | HD | Institutional Record Set Request |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mBloodFlowMin |
+ * | #2: (U32) | \ref Data::mBloodFlowMax |
+ * | #3: (U32) | \ref Data::mBloodFlowDef |
+ * | #4: (U32) | \ref Data::mDialysateFlowMin |
+ * | #5: (U32) | \ref Data::mDialysateFlowMax |
+ * | #6: (U32) | \ref Data::mDialysateFlowDef |
+ * | #7: (U32) | \ref Data::mTreatmentDurationMin |
+ * | #8: (U32) | \ref Data::mTreatmentDurationMax |
+ * | #9: (U32) | \ref Data::mTreatmentDurationDef |
+ * | #10:(F32) | \ref Data::mHepBolusVolumeMin |
+ * | #11:(F32) | \ref Data::mHepBolusVolumeMax |
+ * | #12:(F32) | \ref Data::mHepBolusVolumeDef |
+ * | #13:(F32) | \ref Data::mHepDispRateMin |
+ * | #14:(F32) | \ref Data::mHepDispRateMax |
+ * | #15:(F32) | \ref Data::mHepDispRateDef |
+ * | #16:(U32) | \ref Data::mHepStopTimeMin |
+ * | #17:(U32) | \ref Data::mHepStopTimeMax |
+ * | #18:(F32) | \ref Data::mDialysateTempMin |
+ * | #19:(F32) | \ref Data::mDialysateTempMax |
+ * | #20:(F32) | \ref Data::mDialysateTempDef |
+ * | #21:(F32) | \ref Data::mPotassiumMin |
+ * | #22:(F32) | \ref Data::mPotassiumMax |
+ * | #23:(F32) | \ref Data::mCalciumMin |
+ * | #24:(F32) | \ref Data::mCalciumMax |
+ * | #25:(U32) | \ref Data::mDialysateBicarbonateMin |
+ * | #26:(U32) | \ref Data::mDialysateBicarbonateMax |
+ * | #27:(U32) | \ref Data::mDialysateBicarbonateDef |
+ * | #28:(U32) | \ref Data::mDialysateSodiumMin |
+ * | #29:(U32) | \ref Data::mDialysateSodiumMax |
+ * | #30:(U32) | \ref Data::mDialysateSodiumDef |
+ * | #31:(U32) | \ref Data::mFluidBolusVolumeMin |
+ * | #32:(U32) | \ref Data::mFluidBolusVolumeMax |
+ * | #33:(U32) | \ref Data::mFluidBolusVolumeDef |
+ * | #34:(U32) | \ref Data::mArterialWindowMin |
+ * | #35:(U32) | \ref Data::mArterialWindowMax |
+ * | #36:(U32) | \ref Data::mArterialWindowDef |
+ * | #37:(U32) | \ref Data::mVenousWindowMin |
+ * | #38:(U32) | \ref Data::mVenousWindowMax |
+ * | #39:(U32) | \ref Data::mVenousWindowDef |
+ * | #40:(U32) | \ref Data::mVenousAsymmetricMin |
+ * | #41:(U32) | \ref Data::mVenousAsymmetricMax |
+ * | #42:(U32) | \ref Data::mVenousAsymmetricDef |
+ * | #43:(U32) | \ref Data::mTMPWindowMin |
+ * | #44:(U32) | \ref Data::mTMPWindowMax |
+ * | #45:(U32) | \ref Data::mTMPWindowDef |
+ * | #46:(F32) | \ref Data::mUltrafiltrationVolumeMin |
+ * | #47:(F32) | \ref Data::mUltrafiltrationVolumeMax |
+ * | #48:(F32) | \ref Data::mUltrafiltrationVolumeDef |
+ * | #49:(U32) | \ref Data::mVitalsIntervalDef |
+ * | #50:(U32) | \ref Data::mRinsebackVolumeMin |
+ * | #51:(U32) | \ref Data::mRinsebackVolumeMax |
+ * | #52:(U32) | \ref Data::mRinsebackVolumeDef |
+ * | #53:(U32) | \ref Data::mRinsebackFlowRateMin |
+ * | #54:(U32) | \ref Data::mRinsebackFlowRateMax |
+ * | #55:(U32) | \ref Data::mRinsebackFlowRateDef |
+ * | #56:(F32) | \ref Data::mSubstitutionVolumeMin |
+ * | #57:(F32) | \ref Data::mSubstitutionVolumeMax |
+ * | #58:(F32) | \ref Data::mSubstitutionVolumeDef |
+*
+*/
+class MAdjustInstitutionalRecordReq : public MModel {
+public:
+ quint32 mBloodFlowMin = 0 ;
+ quint32 mBloodFlowMax = 0 ;
+ quint32 mBloodFlowDef = 0 ;
+ quint32 mDialysateFlowMin = 0 ;
+ quint32 mDialysateFlowMax = 0 ;
+ quint32 mDialysateFlowDef = 0 ;
+ quint32 mTreatmentDurationMin = 0 ;
+ quint32 mTreatmentDurationMax = 0 ;
+ quint32 mTreatmentDurationDef = 0 ;
+ float mHepBolusVolumeMin = 0 ;
+ float mHepBolusVolumeMax = 0 ;
+ float mHepBolusVolumeDef = 0 ;
+ float mHepDispRateMin = 0 ;
+ float mHepDispRateMax = 0 ;
+ float mHepDispRateDef = 0 ;
+ quint32 mHepStopTimeMin = 0 ;
+ quint32 mHepStopTimeMax = 0 ;
+ float mDialysateTempMin = 0 ;
+ float mDialysateTempMax = 0 ;
+ float mDialysateTempDef = 0 ;
+ float mPotassiumMin = 0 ;
+ float mPotassiumMax = 0 ;
+ float mCalciumMin = 0 ;
+ float mCalciumMax = 0 ;
+ quint32 mDialysateBicarbonateMin = 0 ;
+ quint32 mDialysateBicarbonateMax = 0 ;
+ quint32 mDialysateBicarbonateDef = 0 ;
+ quint32 mDialysateSodiumMin = 0 ;
+ quint32 mDialysateSodiumMax = 0 ;
+ quint32 mDialysateSodiumDef = 0 ;
+ quint32 mFluidBolusVolumeMin = 0 ;
+ quint32 mFluidBolusVolumeMax = 0 ;
+ quint32 mFluidBolusVolumeDef = 0 ;
+ quint32 mArterialWindowMin = 0 ;
+ quint32 mArterialWindowMax = 0 ;
+ quint32 mArterialWindowDef = 0 ;
+ quint32 mVenousWindowMin = 0 ;
+ quint32 mVenousWindowMax = 0 ;
+ quint32 mVenousWindowDef = 0 ;
+ quint32 mVenousAsymmetricMin = 0 ;
+ quint32 mVenousAsymmetricMax = 0 ;
+ quint32 mVenousAsymmetricDef = 0 ;
+ quint32 mTMPWindowMin = 0 ;
+ quint32 mTMPWindowMax = 0 ;
+ quint32 mTMPWindowDef = 0 ;
+ float mUltrafiltrationVolumeMin = 0 ;
+ float mUltrafiltrationVolumeMax = 0 ;
+ float mUltrafiltrationVolumeDef = 0 ;
+ quint32 mVitalsIntervalDef = 0 ;
+ quint32 mRinsebackVolumeMin = 0 ;
+ quint32 mRinsebackVolumeMax = 0 ;
+ quint32 mRinsebackVolumeDef = 0 ;
+ quint32 mRinsebackFlowRateMin = 0 ;
+ quint32 mRinsebackFlowRateMax = 0 ;
+ quint32 mRinsebackFlowRateDef = 0 ;
+ float mSubstitutionVolumeMin = 0 ;
+ float mSubstitutionVolumeMax = 0 ;
+ float mSubstitutionVolumeDef = 0 ;
+
+ QString toString() {
+ return toString({
+ mBloodFlowMin ,
+ mBloodFlowMax ,
+ mBloodFlowDef ,
+ mDialysateFlowMin ,
+ mDialysateFlowMax ,
+ mDialysateFlowDef ,
+ mTreatmentDurationMin ,
+ mTreatmentDurationMax ,
+ mTreatmentDurationDef ,
+ mHepBolusVolumeMin ,
+ mHepBolusVolumeMax ,
+ mHepBolusVolumeDef ,
+ mHepDispRateMin ,
+ mHepDispRateMax ,
+ mHepDispRateDef ,
+ mHepStopTimeMin ,
+ mHepStopTimeMax ,
+ mDialysateTempMin ,
+ mDialysateTempMax ,
+ mDialysateTempDef ,
+ mPotassiumMin ,
+ mPotassiumMax ,
+ mCalciumMin ,
+ mCalciumMax ,
+ mDialysateBicarbonateMin ,
+ mDialysateBicarbonateMax ,
+ mDialysateBicarbonateDef ,
+ mDialysateSodiumMin ,
+ mDialysateSodiumMax ,
+ mDialysateSodiumDef ,
+ mFluidBolusVolumeMin ,
+ mFluidBolusVolumeMax ,
+ mFluidBolusVolumeDef ,
+ mArterialWindowMin ,
+ mArterialWindowMax ,
+ mArterialWindowDef ,
+ mVenousWindowMin ,
+ mVenousWindowMax ,
+ mVenousWindowDef ,
+ mVenousAsymmetricMin ,
+ mVenousAsymmetricMax ,
+ mVenousAsymmetricDef ,
+ mTMPWindowMin ,
+ mTMPWindowMax ,
+ mTMPWindowDef ,
+ mUltrafiltrationVolumeMin ,
+ mUltrafiltrationVolumeMax ,
+ mUltrafiltrationVolumeDef ,
+ mVitalsIntervalDef ,
+ mRinsebackVolumeMin ,
+ mRinsebackVolumeMax ,
+ mRinsebackVolumeDef ,
+ mRinsebackFlowRateMin ,
+ mRinsebackFlowRateMax ,
+ mRinsebackFlowRateDef ,
+ mSubstitutionVolumeMin ,
+ mSubstitutionVolumeMax ,
+ mSubstitutionVolumeDef ,
+ });
+ }
+
+ static QString toString(const QVariantList &vParameters) {
+ return MModel::toString("AdjustInstitutionalRecord", vParameters);
+ }
+
+ static Can::Can_Id canid () { return Can::eChlid_UI_TD; }
+};
+
+/*!
+ * \brief The MAdvancedInstitutionalRecordReq
+ * \details The TD Advanced Institutional request model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:------:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * | 0x8900 | 0x100 | Req | Y | UI | HD | Advanced Institutional Record Request |
+ *
+ * | Payload ||
+ * | ||
+ * | (N/A) ||
+ *
+ */
+class MAdvancedInstitutionalRecordReq : public MModel {
+public:
+
+ QString toString() {
+ return toString({});
+ }
+ static QString toString(const QVariantList &vParameters) {
+ return MModel::toString("AdvancedInstitutionalRecord", vParameters);
+ }
+
+ static Can::Can_Id canid () { return Can::eChlid_UI_TD; }
+};
+
+
+/*!
+ * \brief The MAdjustAdvancedInstitutionalRecordReq
+ * \details The TD Advanced Institutionalrequest model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:------:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * | 0x8900 | 0x100 | Req | Y | UI | HD | Advanced Institutional Record Set Request |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mMinRORejectionRatioAlarmMin |
+ * | #2: (U32) | \ref Data::mMinRORejectionRatioAlarmMax |
+ * | #3: (U32) | \ref Data::mMinRORejectionRatioAlarmDef |
+ * | #4: (U32) | \ref Data::mDisinfectionFrequencyMin |
+ * | #5: (U32) | \ref Data::mDisinfectionFrequencyMax |
+ * | #6: (U32) | \ref Data::mDisinfectionFrequencyDef |
+ * | #7: (U32) | \ref Data::mDisinfectionParametersCycleTimeMin |
+ * | #8: (U32) | \ref Data::mDisinfectionParametersCycleTimeMax |
+ * | #9: (U32) | \ref Data::mDisinfectionParametersCycleTimeDef |
+ * | #10:(U32) | \ref Data::mMaxBloodPumpStopTimeMin |
+ * | #11:(U32) | \ref Data::mMaxBloodPumpStopTimeMax |
+ * | #12:(U32) | \ref Data::mMaxBloodPumpStopTimeDef |
+ * | #13:(U32) | \ref Data::mInletWaterCondLowThresholdMin |
+ * | #14:(U32) | \ref Data::mInletWaterCondLowThresholdMax |
+ * | #15:(U32) | \ref Data::mInletWaterCondLowThresholdDef |
+ * | #16:(U32) | \ref Data::mInletWaterCondHighThresholdMin |
+ * | #17:(U32) | \ref Data::mInletWaterCondHighThresholdMax |
+ * | #18:(U32) | \ref Data::mInletWaterCondHighThresholdDef |
+ * | #19:(U32) | \ref Data::mChlorineWaterSampleCheckMin |
+ * | #20:(U32) | \ref Data::mChlorineWaterSampleCheckMax |
+ * | #21:(U32) | \ref Data::mChlorineWaterSampleCheckDef |
+ * | #22:(U32) | \ref Data::mWaterSampleTestResultRequiredDef |
+ *
+ */
+class MAdjustAdvancedInstitutionalRecordReq : public MModel {
+public:
+ quint32 mMinRORejectionRatioAlarmMin = 0;
+ quint32 mMinRORejectionRatioAlarmMax = 0;
+ quint32 mMinRORejectionRatioAlarmDef = 0;
+ quint32 mDisinfectionFrequencyMin = 0;
+ quint32 mDisinfectionFrequencyMax = 0;
+ quint32 mDisinfectionFrequencyDef = 0;
+ quint32 mDisinfectionParametersCycleTimeMin = 0;
+ quint32 mDisinfectionParametersCycleTimeMax = 0;
+ quint32 mDisinfectionParametersCycleTimeDef = 0;
+ quint32 mMaxBloodPumpStopTimeMin = 0;
+ quint32 mMaxBloodPumpStopTimeMax = 0;
+ quint32 mMaxBloodPumpStopTimeDef = 0;
+ quint32 mInletWaterCondLowThresholdMin = 0;
+ quint32 mInletWaterCondLowThresholdMax = 0;
+ quint32 mInletWaterCondLowThresholdDef = 0;
+ quint32 mInletWaterCondHighThresholdMin = 0;
+ quint32 mInletWaterCondHighThresholdMax = 0;
+ quint32 mInletWaterCondHighThresholdDef = 0;
+ quint32 mChlorineWaterSampleCheckMin = 0;
+ quint32 mChlorineWaterSampleCheckMax = 0;
+ quint32 mChlorineWaterSampleCheckDef = 0;
+ quint32 mWaterSampleTestResultRequiredDef = 0;
+
+
+ QString toString() {
+ return toString({
+ mMinRORejectionRatioAlarmMin ,
+ mMinRORejectionRatioAlarmMax ,
+ mMinRORejectionRatioAlarmDef ,
+ mDisinfectionFrequencyMin ,
+ mDisinfectionFrequencyMax ,
+ mDisinfectionFrequencyDef ,
+ mDisinfectionParametersCycleTimeMin,
+ mDisinfectionParametersCycleTimeMax,
+ mDisinfectionParametersCycleTimeDef,
+ mMaxBloodPumpStopTimeMin ,
+ mMaxBloodPumpStopTimeMax ,
+ mMaxBloodPumpStopTimeDef ,
+ mInletWaterCondLowThresholdMin ,
+ mInletWaterCondLowThresholdMax ,
+ mInletWaterCondLowThresholdDef ,
+ mInletWaterCondHighThresholdMin ,
+ mInletWaterCondHighThresholdMax ,
+ mInletWaterCondHighThresholdDef ,
+ mChlorineWaterSampleCheckMin ,
+ mChlorineWaterSampleCheckMax ,
+ mChlorineWaterSampleCheckDef ,
+ mWaterSampleTestResultRequiredDef ,
+ });
+ }
+
+ static QString toString(const QVariantList &vParameters) {
+ return MModel::toString("AdjustAdvancedInstitutionalRecord", vParameters);
+ }
+
+ static Can::Can_Id canid () { return Can::eChlid_UI_TD; }
+};
+
+/*!
* \brief The MAdjustHDResetReq class
* \details The DG/HD versions request model
*
@@ -324,13 +646,16 @@
};
}
-typedef Model:: MAdjustServiceModeReq AdjustServiceModeRequestData;
-typedef Model:: MAdjustVersionsReq AdjustVersionsRequestData;
-typedef Model:: MAdjustVersionsRsp AdjustVersionsResponseData;
-typedef Model:: MAdjustServiceDatesReq AdjustServiceDatesRequestData;
-typedef Model:: MAdjustTDDateTimeReq AdjustTDDateTimeRequestData;
-typedef Model:: MAdjustHDAlarmVolumeReq AdjustHDAlarmVolumeRequestData;
-typedef Model:: MAdjustUIPostFinalResultReq AdjustUIPostFinalResultRequestData;
-typedef Model:: MHDUsageInfoReq HDUsageInfoRequestData;
-typedef Model::MAdjustInstitutionalRecordReq AdjustInstitutionalRequestData;
-typedef Model:: MAdjustHDResetInSrvceModeReq AdjustHDResetInSrvcRequestData;
+typedef Model:: MAdjustServiceModeReq AdjustServiceModeRequestData;
+typedef Model:: MAdjustVersionsReq AdjustVersionsRequestData;
+typedef Model:: MAdjustVersionsRsp AdjustVersionsResponseData;
+typedef Model:: MAdjustServiceDatesReq AdjustServiceDatesRequestData;
+typedef Model:: MAdjustTDDateTimeReq AdjustTDDateTimeRequestData;
+typedef Model:: MAdjustHDAlarmVolumeReq AdjustHDAlarmVolumeRequestData;
+typedef Model:: MAdjustUIPostFinalResultReq AdjustUIPostFinalResultRequestData;
+typedef Model:: MHDUsageInfoReq HDUsageInfoRequestData;
+typedef Model:: MInstitutionalRecordReq InstitutionalRequestData;
+typedef Model:: MAdjustInstitutionalRecordReq AdjustInstitutionalRequestData;
+typedef Model:: MAdvancedInstitutionalRecordReq AdvancedInstitutionalRequestData;
+typedef Model::MAdjustAdvancedInstitutionalRecordReq AdjustAdvancedInstitutionalRequestData;
+typedef Model:: MAdjustHDResetInSrvceModeReq AdjustHDResetInSrvcRequestData;
Index: sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.cpp
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.cpp (revision 0)
+++ sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,113 @@
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file MAdjustTDAdvancedInstitutionalRecordResponse.cpp
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#include "MAdjustTDAdvancedInstitutionalRecordResponse.h"
+
+using namespace Model;
+
+QVariantList MAdjustAdvancedInstitutionalRecordResponse::parameters() const {
+ return {
+ _data.mAccepted .value,
+ _data.mMinRORejectionRatioAlarmMinRejectionReason .value,
+ _data.mMinRORejectionRatioAlarmMaxRejectionReason .value,
+ _data.mMinRORejectionRatioAlarmDefRejectionReason .value,
+ _data.mDisinfectionFrequencyMinRejectionReason .value,
+ _data.mDisinfectionFrequencyMaxRejectionReason .value,
+ _data.mDisinfectionFrequencyDefRejectionReason .value,
+ _data.mDisinfectionParametersCycleTimeMinRejectionReason .value,
+ _data.mDisinfectionParametersCycleTimeMaxRejectionReason .value,
+ _data.mDisinfectionParametersCycleTimeDefRejectionReason .value,
+ _data.mMaxBloodPumpStopTimeMinRejectionReason .value,
+ _data.mMaxBloodPumpStopTimeMaxRejectionReason .value,
+ _data.mMaxBloodPumpStopTimeDefRejectionReason .value,
+ _data.mInletWaterCondLowThresholdMinRejectionReason .value,
+ _data.mInletWaterCondLowThresholdMaxRejectionReason .value,
+ _data.mInletWaterCondLowThresholdDefRejectionReason .value,
+ _data.mInletWaterCondHighThresholdMinRejectionReason .value,
+ _data.mInletWaterCondHighThresholdMaxRejectionReason .value,
+ _data.mInletWaterCondHighThresholdDefRejectionReason .value,
+ _data.mChlorineWaterSampleCheckMinRejectionReason .value,
+ _data.mChlorineWaterSampleCheckMaxRejectionReason .value,
+ _data.mChlorineWaterSampleCheckDefRejectionReason .value,
+ _data.mWaterSampleTestResultRequiredDefRejectionReason .value,
+ };
+}
+
+bool MAdjustAdvancedInstitutionalRecordResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) {
+ int index = 0; // message data start position
+ if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mWaterSampleTestResultRequiredDefRejectionReason )) goto lError;
+
+ return true ;
+
+lError:
+ if(vIndex) { *vIndex = index; }
+
+ return false ;
+}
+
+/*!
+ * \brief MAdjustHDDateTimeResponse::data
+ * \details Provides model's Data from the received messages data values
+ * \return Data
+ */
+AdjustAdvancedInstitutionalRecordResponseData MAdjustAdvancedInstitutionalRecordResponse::data() const {
+ Data data;
+ data.mAccepted = _data.mAccepted .value;
+ data.mMinRORejectionRatioAlarmMinRejectionReason = _data.mMinRORejectionRatioAlarmMinRejectionReason .value;
+ data.mMinRORejectionRatioAlarmMaxRejectionReason = _data.mMinRORejectionRatioAlarmMaxRejectionReason .value;
+ data.mMinRORejectionRatioAlarmDefRejectionReason = _data.mMinRORejectionRatioAlarmDefRejectionReason .value;
+ data.mDisinfectionFrequencyMinRejectionReason = _data.mDisinfectionFrequencyMinRejectionReason .value;
+ data.mDisinfectionFrequencyMaxRejectionReason = _data.mDisinfectionFrequencyMaxRejectionReason .value;
+ data.mDisinfectionFrequencyDefRejectionReason = _data.mDisinfectionFrequencyDefRejectionReason .value;
+ data.mDisinfectionParametersCycleTimeMinRejectionReason = _data.mDisinfectionParametersCycleTimeMinRejectionReason .value;
+ data.mDisinfectionParametersCycleTimeMaxRejectionReason = _data.mDisinfectionParametersCycleTimeMaxRejectionReason .value;
+ data.mDisinfectionParametersCycleTimeDefRejectionReason = _data.mDisinfectionParametersCycleTimeDefRejectionReason .value;
+ data.mMaxBloodPumpStopTimeMinRejectionReason = _data.mMaxBloodPumpStopTimeMinRejectionReason .value;
+ data.mMaxBloodPumpStopTimeMaxRejectionReason = _data.mMaxBloodPumpStopTimeMaxRejectionReason .value;
+ data.mMaxBloodPumpStopTimeDefRejectionReason = _data.mMaxBloodPumpStopTimeDefRejectionReason .value;
+ data.mInletWaterCondLowThresholdMinRejectionReason = _data.mInletWaterCondLowThresholdMinRejectionReason .value;
+ data.mInletWaterCondLowThresholdMaxRejectionReason = _data.mInletWaterCondLowThresholdMaxRejectionReason .value;
+ data.mInletWaterCondLowThresholdDefRejectionReason = _data.mInletWaterCondLowThresholdDefRejectionReason .value;
+ data.mInletWaterCondHighThresholdMinRejectionReason = _data.mInletWaterCondHighThresholdMinRejectionReason .value;
+ data.mInletWaterCondHighThresholdMaxRejectionReason = _data.mInletWaterCondHighThresholdMaxRejectionReason .value;
+ data.mInletWaterCondHighThresholdDefRejectionReason = _data.mInletWaterCondHighThresholdDefRejectionReason .value;
+ data.mChlorineWaterSampleCheckMinRejectionReason = _data.mChlorineWaterSampleCheckMinRejectionReason .value;
+ data.mChlorineWaterSampleCheckMaxRejectionReason = _data.mChlorineWaterSampleCheckMaxRejectionReason .value;
+ data.mChlorineWaterSampleCheckDefRejectionReason = _data.mChlorineWaterSampleCheckDefRejectionReason .value;
+ data.mWaterSampleTestResultRequiredDefRejectionReason = _data.mWaterSampleTestResultRequiredDefRejectionReason .value;
+
+ return data;
+}
Index: sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.h
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.h (revision 0)
+++ sources/model/td/adjustment/settings/MAdjustTDAdvancedInstitutionalRecordResponse.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,144 @@
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file MAdjustTDAdvancedInstitutionalRecordResponse.h
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "MAbstract.h"
+#include "types.h"
+
+// forward declarations
+class tst_models;
+
+namespace Model {
+
+/*!
+ * \brief The MAdjustTDAdvancedInstitutionalRecordResponse class
+ * \details The HD Date and Time adjustment response model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:----:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * |0x8900| 0x020 | Rsp | Y | HD | UI | Service Mode |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mAccepted |
+ * | #3: (U32) | \ref Data::mMinRORejectionRatioAlarmMaxRejectionReason |
+ * | #2: (U32) | \ref Data::mMinRORejectionRatioAlarmMinRejectionReason |
+ * | #4: (U32) | \ref Data::mMinRORejectionRatioAlarmDefRejectionReason |
+ * | #5: (U32) | \ref Data::mDisinfectionFrequencyMinRejectionReason |
+ * | #6: (U32) | \ref Data::mDisinfectionFrequencyMaxRejectionReason |
+ * | #7: (U32) | \ref Data::mDisinfectionFrequencyDefRejectionReason |
+ * | #8: (U32) | \ref Data::mDisinfectionParametersCycleTimeMinRejectionReason |
+ * | #9: (U32) | \ref Data::mDisinfectionParametersCycleTimeMaxRejectionReason |
+ * | #10:(U32) | \ref Data::mDisinfectionParametersCycleTimeDefRejectionReason |
+ * | #11:(U32) | \ref Data::mMaxBloodPumpStopTimeMinRejectionReason |
+ * | #12:(U32) | \ref Data::mMaxBloodPumpStopTimeMaxRejectionReason |
+ * | #13:(U32) | \ref Data::mMaxBloodPumpStopTimeDefRejectionReason |
+ * | #14:(U32) | \ref Data::mInletWaterCondLowThresholdMinRejectionReason |
+ * | #15:(U32) | \ref Data::mInletWaterCondLowThresholdMaxRejectionReason |
+ * | #16:(U32) | \ref Data::mInletWaterCondLowThresholdDefRejectionReason |
+ * | #17:(U32) | \ref Data::mInletWaterCondHighThresholdMinRejectionReason |
+ * | #18:(U32) | \ref Data::mInletWaterCondHighThresholdMaxRejectionReason |
+ * | #19:(U32) | \ref Data::mInletWaterCondHighThresholdDefRejectionReason |
+ * | #20:(U32) | \ref Data::mChlorineWaterSampleCheckMinRejectionReason |
+ * | #21:(U32) | \ref Data::mChlorineWaterSampleCheckMaxRejectionReason |
+ * | #22:(U32) | \ref Data::mChlorineWaterSampleCheckDefRejectionReason |
+ * | #23:(U32) | \ref Data::mWaterSampleTestResultRequiredDefRejectionReason |
+ *
+ * \sa Data
+ *
+ *
+ * | ||
+ * | ||
+ * | typeText | Event |
+ * | unitText | HD |
+ * | infoText | ServiceMode |
+ *
+ */
+class MAdjustAdvancedInstitutionalRecordResponse : public MAbstract {
+
+ // friends
+ friend class ::tst_models;
+
+ QVariantList parameters() const override;
+
+ struct {
+ Types::U32 mAccepted ;
+ Types::U32 mMinRORejectionRatioAlarmMinRejectionReason ;
+ Types::U32 mMinRORejectionRatioAlarmMaxRejectionReason ;
+ Types::U32 mMinRORejectionRatioAlarmDefRejectionReason ;
+ Types::U32 mDisinfectionFrequencyMinRejectionReason ;
+ Types::U32 mDisinfectionFrequencyMaxRejectionReason ;
+ Types::U32 mDisinfectionFrequencyDefRejectionReason ;
+ Types::U32 mDisinfectionParametersCycleTimeMinRejectionReason ;
+ Types::U32 mDisinfectionParametersCycleTimeMaxRejectionReason ;
+ Types::U32 mDisinfectionParametersCycleTimeDefRejectionReason ;
+ Types::U32 mMaxBloodPumpStopTimeMinRejectionReason ;
+ Types::U32 mMaxBloodPumpStopTimeMaxRejectionReason ;
+ Types::U32 mMaxBloodPumpStopTimeDefRejectionReason ;
+ Types::U32 mInletWaterCondLowThresholdMinRejectionReason ;
+ Types::U32 mInletWaterCondLowThresholdMaxRejectionReason ;
+ Types::U32 mInletWaterCondLowThresholdDefRejectionReason ;
+ Types::U32 mInletWaterCondHighThresholdMinRejectionReason ;
+ Types::U32 mInletWaterCondHighThresholdMaxRejectionReason ;
+ Types::U32 mInletWaterCondHighThresholdDefRejectionReason ;
+ Types::U32 mChlorineWaterSampleCheckMinRejectionReason ;
+ Types::U32 mChlorineWaterSampleCheckMaxRejectionReason ;
+ Types::U32 mChlorineWaterSampleCheckDefRejectionReason ;
+ Types::U32 mWaterSampleTestResultRequiredDefRejectionReason ;
+ } _data;
+
+public:
+ Type_Enum typeText () const override { return Type_Enum::eEvent ; }
+ Unit_Enum unitText () const override { return Unit_Enum::eTD ; }
+ QString infoText () const override { return QString("AdjustAdvancedInstitutionalRecord") ; }
+
+ struct Data {
+ bool mAccepted = true ; /*!< Accepted value of type quint32 extracted out */
+ quint32 mMinRORejectionRatioAlarmMinRejectionReason ;
+ quint32 mMinRORejectionRatioAlarmMaxRejectionReason ;
+ quint32 mMinRORejectionRatioAlarmDefRejectionReason ;
+ quint32 mDisinfectionFrequencyMinRejectionReason ;
+ quint32 mDisinfectionFrequencyMaxRejectionReason ;
+ quint32 mDisinfectionFrequencyDefRejectionReason ;
+ quint32 mDisinfectionParametersCycleTimeMinRejectionReason ;
+ quint32 mDisinfectionParametersCycleTimeMaxRejectionReason ;
+ quint32 mDisinfectionParametersCycleTimeDefRejectionReason ;
+ quint32 mMaxBloodPumpStopTimeMinRejectionReason ;
+ quint32 mMaxBloodPumpStopTimeMaxRejectionReason ;
+ quint32 mMaxBloodPumpStopTimeDefRejectionReason ;
+ quint32 mInletWaterCondLowThresholdMinRejectionReason ;
+ quint32 mInletWaterCondLowThresholdMaxRejectionReason ;
+ quint32 mInletWaterCondLowThresholdDefRejectionReason ;
+ quint32 mInletWaterCondHighThresholdMinRejectionReason ;
+ quint32 mInletWaterCondHighThresholdMaxRejectionReason ;
+ quint32 mInletWaterCondHighThresholdDefRejectionReason ;
+ quint32 mChlorineWaterSampleCheckMinRejectionReason ;
+ quint32 mChlorineWaterSampleCheckMaxRejectionReason ;
+ quint32 mChlorineWaterSampleCheckDefRejectionReason ;
+ quint32 mWaterSampleTestResultRequiredDefRejectionReason ;
+ };
+
+ MAdjustAdvancedInstitutionalRecordResponse () { }
+
+ bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override;
+ Data data ( ) const ;
+};
+}
+
+typedef Model::MAdjustAdvancedInstitutionalRecordResponse::Data AdjustAdvancedInstitutionalRecordResponseData;
Index: sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.cpp
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.cpp (revision 0)
+++ sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,221 @@
+
+/*!
+ *
+ * Copyright (c) 2024-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 MAdjustTDInstitutionalRecordResponse.cpp
+ * \author (last) Dara Navaei
+ * \date (last) 19-Mar-2024
+ * \author (original) Dara Navaei
+ * \date (original) 28-Feb-2024
+ *
+ */
+#include "MAdjustTDInstitutionalRecordResponse.h"
+
+using namespace Model;
+
+QVariantList MAdjustInstitutionalRecordResponse::parameters() const {
+ return {
+ _data.mAccepted .value,
+ _data.mBloodFlowRateMinRejectionReason .value,
+ _data.mBloodFlowRateMaxRejectionReason .value,
+ _data.mBloodFlowRateDefRejectionReason .value,
+ _data.mDialysateFlowRateMinRejectionReason .value,
+ _data.mDialysateFlowRateMaxRejectionReason .value,
+ _data.mDialysateFlowRateDefRejectionReason .value,
+ _data.mTreatmentDurationMinRejectionReason .value,
+ _data.mTreatmentDurationMaxRejectionReason .value,
+ _data.mTreatmentDurationDefRejectionReason .value,
+ _data.mHeparinBolusVolumeMinRejectionReason .value,
+ _data.mHeparinBolusVolumeMaxRejectionReason .value,
+ _data.mHeparinBolusVolumeDefRejectionReason .value,
+ _data.mHeparinDispensingRateMinRejectionReason .value,
+ _data.mHeparinDispensingRateMaxRejectionReason .value,
+ _data.mHeparinDispensingRateDefRejectionReason .value,
+ _data.mHeparinStopTimeMinRejectionReason .value,
+ _data.mHeparinStopTimeMaxRejectionReason .value,
+ _data.mDialysateTempMinRejectionReason .value,
+ _data.mDialysateTempMaxRejectionReason .value,
+ _data.mDialysateTempDefRejectionReason .value,
+ _data.mAcidConcentratePotassiumMinRejectionReason .value,
+ _data.mAcidConcentratePotassiumMaxRejectionReason .value,
+ _data.mAcidConcentrateCalciumMinRejectionReason .value,
+ _data.mAcidConcentrateCalciumMaxRejectionReason .value,
+ _data.mBicarbFinalDialysateCompositionMinRejectionReason .value,
+ _data.mBicarbFinalDialysateCompositionMaxRejectionReason .value,
+ _data.mBicarbFinalDialysateCompositionDefRejectionReason .value,
+ _data.mSodiumFinalDialysateCompositionMinRejectionReason .value,
+ _data.mSodiumFinalDialysateCompositionMaxRejectionReason .value,
+ _data.mSodiumFinalDialysateCompositionDefRejectionReason .value,
+ _data.mFluidBolusVolumeMinRejectionReason .value,
+ _data.mFluidBolusVolumeMaxRejectionReason .value,
+ _data.mFluidBolusVolumeDefRejectionReason .value,
+ _data.mArterialPressureLimitWindowMinRejectionReason .value,
+ _data.mArterialPressureLimitWindowMaxRejectionReason .value,
+ _data.mArterialPressureLimitWindowDefRejectionReason .value,
+ _data.mVenousPressureLimitWindowMinRejectionReason .value,
+ _data.mVenousPressureLimitWindowMaxRejectionReason .value,
+ _data.mVenousPressureLimitWindowDefRejectionReason .value,
+ _data.mVenousPressureLimitAsymtrcMinRejectionReason .value,
+ _data.mVenousPressureLimitAsymtrcMaxRejectionReason .value,
+ _data.mVenousPressureLimitAsymtrcDefRejectionReason .value,
+ _data.mTrancembrncPressureLimitWindowMinRejectionReason .value,
+ _data.mTrancembrncPressureLimitWindowMaxRejectionReason .value,
+ _data.mTrancembrncPressureLimitWindowDefRejectionReason .value,
+ _data.mUltrafiltrationVolumeMinRejectionReason .value,
+ _data.mUltrafiltrationVolumeMaxRejectionReason .value,
+ _data.mUltrafiltrationVolumeDefRejectionReason .value,
+ _data.mVitalsIntervalDefRejectionReason .value,
+ _data.mRinsebackVolumeMinRejectionReason .value,
+ _data.mRinsebackVolumeMaxRejectionReason .value,
+ _data.mRinsebackVolumeDefRejectionReason .value,
+ _data.mRinsebackFlowRateMinRejectionReason .value,
+ _data.mRinsebackFlowRateMaxRejectionReason .value,
+ _data.mRinsebackFlowRateDefRejectionReason .value,
+ _data.mSubstitutionVolumeMinRejectionReason .value,
+ _data.mSubstitutionVolumeMaxRejectionReason .value,
+ _data.mSubstitutionVolumeDefRejectionReason .value,
+ };
+}
+
+bool MAdjustInstitutionalRecordResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) {
+ int index = 0; // message data start position
+ if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowRateMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowRateMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowRateDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowRateMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowRateMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowRateDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinBolusVolumeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinBolusVolumeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinBolusVolumeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinDispensingRateMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinDispensingRateMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinDispensingRateDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinStopTimeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHeparinStopTimeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mAcidConcentratePotassiumMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mAcidConcentratePotassiumMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mAcidConcentrateCalciumMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mAcidConcentrateCalciumMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBicarbFinalDialysateCompositionMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBicarbFinalDialysateCompositionMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBicarbFinalDialysateCompositionDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSodiumFinalDialysateCompositionMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSodiumFinalDialysateCompositionMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSodiumFinalDialysateCompositionDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialPressureLimitWindowMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialPressureLimitWindowMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialPressureLimitWindowDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitWindowMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitWindowMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitWindowDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitAsymtrcMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitAsymtrcMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousPressureLimitAsymtrcDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTrancembrncPressureLimitWindowMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTrancembrncPressureLimitWindowMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTrancembrncPressureLimitWindowDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVitalsIntervalDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateDefRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeMinRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeMaxRejectionReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeDefRejectionReason )) goto lError;
+ return true ;
+
+lError:
+ if(vIndex) { *vIndex = index; }
+
+ return false ;
+}
+
+/*!
+ * \brief MAdjustHDDateTimeResponse::data
+ * \details Provides model's Data from the received messages data values
+ * \return Data
+ */
+AdjustInstitutionalRecordResponseData MAdjustInstitutionalRecordResponse::data() const {
+ Data data;
+ data.mAccepted = _data.mAccepted .value;
+ data.mBloodFlowRateMinRejectionReason = _data.mBloodFlowRateMinRejectionReason .value;
+ data.mBloodFlowRateMaxRejectionReason = _data.mBloodFlowRateMaxRejectionReason .value;
+ data.mBloodFlowRateDefRejectionReason = _data.mBloodFlowRateDefRejectionReason .value;
+ data.mDialysateFlowRateMinRejectionReason = _data.mDialysateFlowRateMinRejectionReason .value;
+ data.mDialysateFlowRateMaxRejectionReason = _data.mDialysateFlowRateMaxRejectionReason .value;
+ data.mDialysateFlowRateDefRejectionReason = _data.mDialysateFlowRateDefRejectionReason .value;
+ data.mTreatmentDurationMinRejectionReason = _data.mTreatmentDurationMinRejectionReason .value;
+ data.mTreatmentDurationMaxRejectionReason = _data.mTreatmentDurationMaxRejectionReason .value;
+ data.mTreatmentDurationDefRejectionReason = _data.mTreatmentDurationDefRejectionReason .value;
+ data.mHeparinBolusVolumeMinRejectionReason = _data.mHeparinBolusVolumeMinRejectionReason .value;
+ data.mHeparinBolusVolumeMaxRejectionReason = _data.mHeparinBolusVolumeMaxRejectionReason .value;
+ data.mHeparinBolusVolumeDefRejectionReason = _data.mHeparinBolusVolumeDefRejectionReason .value;
+ data.mHeparinDispensingRateMinRejectionReason = _data.mHeparinDispensingRateMinRejectionReason .value;
+ data.mHeparinDispensingRateMaxRejectionReason = _data.mHeparinDispensingRateMaxRejectionReason .value;
+ data.mHeparinDispensingRateDefRejectionReason = _data.mHeparinDispensingRateDefRejectionReason .value;
+ data.mHeparinStopTimeMinRejectionReason = _data.mHeparinStopTimeMinRejectionReason .value;
+ data.mHeparinStopTimeMaxRejectionReason = _data.mHeparinStopTimeMaxRejectionReason .value;
+ data.mDialysateTempMinRejectionReason = _data.mDialysateTempMinRejectionReason .value;
+ data.mDialysateTempMaxRejectionReason = _data.mDialysateTempMaxRejectionReason .value;
+ data.mDialysateTempDefRejectionReason = _data.mDialysateTempDefRejectionReason .value;
+ data.mAcidConcentratePotassiumMinRejectionReason = _data.mAcidConcentratePotassiumMinRejectionReason .value;
+ data.mAcidConcentratePotassiumMaxRejectionReason = _data.mAcidConcentratePotassiumMaxRejectionReason .value;
+ data.mAcidConcentrateCalciumMinRejectionReason = _data.mAcidConcentrateCalciumMinRejectionReason .value;
+ data.mAcidConcentrateCalciumMaxRejectionReason = _data.mAcidConcentrateCalciumMaxRejectionReason .value;
+ data.mBicarbFinalDialysateCompositionMinRejectionReason = _data.mBicarbFinalDialysateCompositionMinRejectionReason .value;
+ data.mBicarbFinalDialysateCompositionMaxRejectionReason = _data.mBicarbFinalDialysateCompositionMaxRejectionReason .value;
+ data.mBicarbFinalDialysateCompositionDefRejectionReason = _data.mBicarbFinalDialysateCompositionDefRejectionReason .value;
+ data.mSodiumFinalDialysateCompositionMinRejectionReason = _data.mSodiumFinalDialysateCompositionMinRejectionReason .value;
+ data.mSodiumFinalDialysateCompositionMaxRejectionReason = _data.mSodiumFinalDialysateCompositionMaxRejectionReason .value;
+ data.mSodiumFinalDialysateCompositionDefRejectionReason = _data.mSodiumFinalDialysateCompositionDefRejectionReason .value;
+ data.mFluidBolusVolumeMinRejectionReason = _data.mFluidBolusVolumeMinRejectionReason .value;
+ data.mFluidBolusVolumeMaxRejectionReason = _data.mFluidBolusVolumeMaxRejectionReason .value;
+ data.mFluidBolusVolumeDefRejectionReason = _data.mFluidBolusVolumeDefRejectionReason .value;
+ data.mArterialPressureLimitWindowMinRejectionReason = _data.mArterialPressureLimitWindowMinRejectionReason .value;
+ data.mArterialPressureLimitWindowMaxRejectionReason = _data.mArterialPressureLimitWindowMaxRejectionReason .value;
+ data.mArterialPressureLimitWindowDefRejectionReason = _data.mArterialPressureLimitWindowDefRejectionReason .value;
+ data.mVenousPressureLimitWindowMinRejectionReason = _data.mVenousPressureLimitWindowMinRejectionReason .value;
+ data.mVenousPressureLimitWindowMaxRejectionReason = _data.mVenousPressureLimitWindowMaxRejectionReason .value;
+ data.mVenousPressureLimitWindowDefRejectionReason = _data.mVenousPressureLimitWindowDefRejectionReason .value;
+ data.mVenousPressureLimitAsymtrcMinRejectionReason = _data.mVenousPressureLimitAsymtrcMinRejectionReason .value;
+ data.mVenousPressureLimitAsymtrcMaxRejectionReason = _data.mVenousPressureLimitAsymtrcMaxRejectionReason .value;
+ data.mVenousPressureLimitAsymtrcDefRejectionReason = _data.mVenousPressureLimitAsymtrcDefRejectionReason .value;
+ data.mTrancembrncPressureLimitWindowMinRejectionReason = _data.mTrancembrncPressureLimitWindowMinRejectionReason .value;
+ data.mTrancembrncPressureLimitWindowMaxRejectionReason = _data.mTrancembrncPressureLimitWindowMaxRejectionReason .value;
+ data.mTrancembrncPressureLimitWindowDefRejectionReason = _data.mTrancembrncPressureLimitWindowDefRejectionReason .value;
+ data.mUltrafiltrationVolumeMinRejectionReason = _data.mUltrafiltrationVolumeMinRejectionReason .value;
+ data.mUltrafiltrationVolumeMaxRejectionReason = _data.mUltrafiltrationVolumeMaxRejectionReason .value;
+ data.mUltrafiltrationVolumeDefRejectionReason = _data.mUltrafiltrationVolumeDefRejectionReason .value;
+ data.mVitalsIntervalDefRejectionReason = _data.mVitalsIntervalDefRejectionReason .value;
+ data.mRinsebackVolumeMinRejectionReason = _data.mRinsebackVolumeMinRejectionReason .value;
+ data.mRinsebackVolumeMaxRejectionReason = _data.mRinsebackVolumeMaxRejectionReason .value;
+ data.mRinsebackVolumeDefRejectionReason = _data.mRinsebackVolumeDefRejectionReason .value;
+ data.mRinsebackFlowRateMinRejectionReason = _data.mRinsebackFlowRateMinRejectionReason .value;
+ data.mRinsebackFlowRateMaxRejectionReason = _data.mRinsebackFlowRateMaxRejectionReason .value;
+ data.mRinsebackFlowRateDefRejectionReason = _data.mRinsebackFlowRateDefRejectionReason .value;
+ data.mSubstitutionVolumeMinRejectionReason = _data.mSubstitutionVolumeMinRejectionReason .value;
+ data.mSubstitutionVolumeMaxRejectionReason = _data.mSubstitutionVolumeMaxRejectionReason .value;
+ data.mSubstitutionVolumeDefRejectionReason = _data.mSubstitutionVolumeDefRejectionReason .value;
+
+ return data;
+}
Index: sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.h
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.h (revision 0)
+++ sources/model/td/adjustment/settings/MAdjustTDInstitutionalRecordResponse.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,252 @@
+/*!
+ *
+ * Copyright (c) 2024-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 MAdjustTDInstitutionalRecordResponse.h
+ * \author (last) Behrouz NematiPour
+ * \date (last) 26-Mar-2024
+ * \author (original) Dara Navaei
+ * \date (original) 28-Feb-2024
+ *
+ */
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "MAbstract.h"
+#include "types.h"
+
+// forward declarations
+class tst_models;
+
+namespace Model {
+
+/*!
+ * \brief The MAdjustTDInstitutionalRecordResponse class
+ * \details The HD Date and Time adjustment response model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:----:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * |0x8500| 0x020 | Rsp | Y | HD | UI | Service Mode |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mAccepted |
+ * | #2: (U32) | \ref Data::mBloodFlowRateMinRejectionReason |
+ * | #3: (U32) | \ref Data::mBloodFlowRateMaxRejectionReason |
+ * | #4: (U32) | \ref Data::mBloodFlowRateDefRejectionReason |
+ * | #5: (U32) | \ref Data::mDialysateFlowRateMinRejectionReason |
+ * | #6: (U32) | \ref Data::mDialysateFlowRateMaxRejectionReason |
+ * | #7: (U32) | \ref Data::mDialysateFlowRateDefRejectionReason |
+ * | #8: (U32) | \ref Data::mTreatmentDurationMinRejectionReason |
+ * | #9: (U32) | \ref Data::mTreatmentDurationMaxRejectionReason |
+ * | #10:(U32) | \ref Data::mTreatmentDurationDefRejectionReason |
+ * | #11:(F32) | \ref Data::mHeparinBolusVolumeMinRejectionReason |
+ * | #12:(F32) | \ref Data::mHeparinBolusVolumeMaxRejectionReason |
+ * | #13:(F32) | \ref Data::mHeparinBolusVolumeDefRejectionReason |
+ * | #14:(F32) | \ref Data::mHeparinDispensingRateMinRejectionReason |
+ * | #15:(F32) | \ref Data::mHeparinDispensingRateMaxRejectionReason |
+ * | #16:(F32) | \ref Data::mHeparinDispensingRateDefRejectionReason |
+ * | #17:(U32) | \ref Data::mHeparinStopTimeMinRejectionReason |
+ * | #18:(U32) | \ref Data::mHeparinStopTimeMaxRejectionReason |
+ * | #19:(F32) | \ref Data::mDialysateTempMinRejectionReason |
+ * | #20:(F32) | \ref Data::mDialysateTempMaxRejectionReason |
+ * | #21:(F32) | \ref Data::mDialysateTempDefRejectionReason |
+ * | #22:(F32) | \ref Data::mAcidConcentratePotassiumMinRejectionReason |
+ * | #23:(F32) | \ref Data::mAcidConcentratePotassiumMaxRejectionReason |
+ * | #24:(F32) | \ref Data::mAcidConcentrateCalciumMinRejectionReason |
+ * | #25:(F32) | \ref Data::mAcidConcentrateCalciumMaxRejectionReason |
+ * | #26:(U32) | \ref Data::mBicarbFinalDialysateCompositionMinRejectionReason |
+ * | #27:(U32) | \ref Data::mBicarbFinalDialysateCompositionMaxRejectionReason |
+ * | #28:(U32) | \ref Data::mBicarbFinalDialysateCompositionDefRejectionReason |
+ * | #29:(U32) | \ref Data::mSodiumFinalDialysateCompositionMinRejectionReason |
+ * | #30:(U32) | \ref Data::mSodiumFinalDialysateCompositionMaxRejectionReason |
+ * | #31:(U32) | \ref Data::mSodiumFinalDialysateCompositionDefRejectionReason |
+ * | #32:(U32) | \ref Data::mFluidBolusVolumeMinRejectionReason |
+ * | #33:(U32) | \ref Data::mFluidBolusVolumeMaxRejectionReason |
+ * | #34:(U32) | \ref Data::mFluidBolusVolumeDefRejectionReason |
+ * | #35:(U32) | \ref Data::mArterialPressureLimitWindowMinRejectionReason |
+ * | #36:(U32) | \ref Data::mArterialPressureLimitWindowMaxRejectionReason |
+ * | #37:(U32) | \ref Data::mArterialPressureLimitWindowDefRejectionReason |
+ * | #38:(U32) | \ref Data::mVenousPressureLimitWindowMinRejectionReason |
+ * | #39:(U32) | \ref Data::mVenousPressureLimitWindowMaxRejectionReason |
+ * | #40:(U32) | \ref Data::mVenousPressureLimitWindowDefRejectionReason |
+ * | #41:(U32) | \ref Data::mVenousPressureLimitAsymtrcMinRejectionReason |
+ * | #42:(U32) | \ref Data::mVenousPressureLimitAsymtrcMaxRejectionReason |
+ * | #43:(U32) | \ref Data::mVenousPressureLimitAsymtrcDefRejectionReason |
+ * | #44:(U32) | \ref Data::mTrancembrncPressureLimitWindowMinRejectionReason |
+ * | #45:(U32) | \ref Data::mTrancembrncPressureLimitWindowMaxRejectionReason |
+ * | #46:(U32) | \ref Data::mTrancembrncPressureLimitWindowDefRejectionReason |
+ * | #47:(F32) | \ref Data::mUltrafiltrationVolumeMinRejectionReason |
+ * | #48:(F32) | \ref Data::mUltrafiltrationVolumeMaxRejectionReason |
+ * | #49:(F32) | \ref Data::mUltrafiltrationVolumeDefRejectionReason |
+ * | #50:(U32) | \ref Data::mVitalsIntervalDefRejectionReason |
+ * | #51:(U32) | \ref Data::mRinsebackVolumeMinRejectionReason |
+ * | #52:(U32) | \ref Data::mRinsebackVolumeMaxRejectionReason |
+ * | #53:(U32) | \ref Data::mRinsebackVolumeDefRejectionReason |
+ * | #54:(U32) | \ref Data::mRinsebackFlowRateMinRejectionReason |
+ * | #55:(U32) | \ref Data::mRinsebackFlowRateMaxRejectionReason |
+ * | #56:(U32) | \ref Data::mRinsebackFlowRateDefRejectionReason |
+ * | #57:(F32) | \ref Data::mSubstitutionVolumeMinRejectionReason |
+ * | #58:(F32) | \ref Data::mSubstitutionVolumeMaxRejectionReason |
+ * | #59:(F32) | \ref Data::mSubstitutionVolumeDefRejectionReason |
+ *
+ * \sa Data
+ *
+ *
+ * | ||
+ * | ||
+ * | typeText | Event |
+ * | unitText | HD |
+ * | infoText | ServiceMode |
+ *
+ */
+class MAdjustInstitutionalRecordResponse : public MAbstract {
+
+ // friends
+ friend class ::tst_models;
+
+ QVariantList parameters() const override;
+
+ struct {
+ Types::U32 mAccepted ;
+ Types::U32 mBloodFlowRateMinRejectionReason ;
+ Types::U32 mBloodFlowRateMaxRejectionReason ;
+ Types::U32 mBloodFlowRateDefRejectionReason ;
+ Types::U32 mDialysateFlowRateMinRejectionReason ;
+ Types::U32 mDialysateFlowRateMaxRejectionReason ;
+ Types::U32 mDialysateFlowRateDefRejectionReason ;
+ Types::U32 mTreatmentDurationMinRejectionReason ;
+ Types::U32 mTreatmentDurationMaxRejectionReason ;
+ Types::U32 mTreatmentDurationDefRejectionReason ;
+ Types::U32 mHeparinBolusVolumeMinRejectionReason ;
+ Types::U32 mHeparinBolusVolumeMaxRejectionReason ;
+ Types::U32 mHeparinBolusVolumeDefRejectionReason ;
+ Types::U32 mHeparinDispensingRateMinRejectionReason ;
+ Types::U32 mHeparinDispensingRateMaxRejectionReason ;
+ Types::U32 mHeparinDispensingRateDefRejectionReason ;
+ Types::U32 mHeparinStopTimeMinRejectionReason ;
+ Types::U32 mHeparinStopTimeMaxRejectionReason ;
+ Types::U32 mDialysateTempMinRejectionReason ;
+ Types::U32 mDialysateTempMaxRejectionReason ;
+ Types::U32 mDialysateTempDefRejectionReason ;
+ Types::U32 mAcidConcentratePotassiumMinRejectionReason ;
+ Types::U32 mAcidConcentratePotassiumMaxRejectionReason ;
+ Types::U32 mAcidConcentrateCalciumMinRejectionReason ;
+ Types::U32 mAcidConcentrateCalciumMaxRejectionReason ;
+ Types::U32 mBicarbFinalDialysateCompositionMinRejectionReason ;
+ Types::U32 mBicarbFinalDialysateCompositionMaxRejectionReason ;
+ Types::U32 mBicarbFinalDialysateCompositionDefRejectionReason ;
+ Types::U32 mSodiumFinalDialysateCompositionMinRejectionReason ;
+ Types::U32 mSodiumFinalDialysateCompositionMaxRejectionReason ;
+ Types::U32 mSodiumFinalDialysateCompositionDefRejectionReason ;
+ Types::U32 mFluidBolusVolumeMinRejectionReason ;
+ Types::U32 mFluidBolusVolumeMaxRejectionReason ;
+ Types::U32 mFluidBolusVolumeDefRejectionReason ;
+ Types::U32 mArterialPressureLimitWindowMinRejectionReason ;
+ Types::U32 mArterialPressureLimitWindowMaxRejectionReason ;
+ Types::U32 mArterialPressureLimitWindowDefRejectionReason ;
+ Types::U32 mVenousPressureLimitWindowMinRejectionReason ;
+ Types::U32 mVenousPressureLimitWindowMaxRejectionReason ;
+ Types::U32 mVenousPressureLimitWindowDefRejectionReason ;
+ Types::U32 mVenousPressureLimitAsymtrcMinRejectionReason ;
+ Types::U32 mVenousPressureLimitAsymtrcMaxRejectionReason ;
+ Types::U32 mVenousPressureLimitAsymtrcDefRejectionReason ;
+ Types::U32 mTrancembrncPressureLimitWindowMinRejectionReason ;
+ Types::U32 mTrancembrncPressureLimitWindowMaxRejectionReason ;
+ Types::U32 mTrancembrncPressureLimitWindowDefRejectionReason ;
+ Types::U32 mUltrafiltrationVolumeMinRejectionReason ;
+ Types::U32 mUltrafiltrationVolumeMaxRejectionReason ;
+ Types::U32 mUltrafiltrationVolumeDefRejectionReason ;
+ Types::U32 mVitalsIntervalDefRejectionReason ;
+ Types::U32 mRinsebackVolumeMinRejectionReason ;
+ Types::U32 mRinsebackVolumeMaxRejectionReason ;
+ Types::U32 mRinsebackVolumeDefRejectionReason ;
+ Types::U32 mRinsebackFlowRateMinRejectionReason ;
+ Types::U32 mRinsebackFlowRateMaxRejectionReason ;
+ Types::U32 mRinsebackFlowRateDefRejectionReason ;
+ Types::U32 mSubstitutionVolumeMinRejectionReason ;
+ Types::U32 mSubstitutionVolumeMaxRejectionReason ;
+ Types::U32 mSubstitutionVolumeDefRejectionReason ;
+ } _data;
+
+public:
+ Type_Enum typeText () const override { return Type_Enum::eEvent ; }
+ Unit_Enum unitText () const override { return Unit_Enum::eTD ; }
+ QString infoText () const override { return QString("AdjustInstitutionalRecord") ; }
+
+ struct Data {
+ bool mAccepted = true ; /*!< Accepted value of type quint32 extracted out */
+ quint32 mBloodFlowRateMinRejectionReason ;
+ quint32 mBloodFlowRateMaxRejectionReason ;
+ quint32 mBloodFlowRateDefRejectionReason ;
+ quint32 mDialysateFlowRateMinRejectionReason ;
+ quint32 mDialysateFlowRateMaxRejectionReason ;
+ quint32 mDialysateFlowRateDefRejectionReason ;
+ quint32 mTreatmentDurationMinRejectionReason ;
+ quint32 mTreatmentDurationMaxRejectionReason ;
+ quint32 mTreatmentDurationDefRejectionReason ;
+ quint32 mHeparinBolusVolumeMinRejectionReason ;
+ quint32 mHeparinBolusVolumeMaxRejectionReason ;
+ quint32 mHeparinBolusVolumeDefRejectionReason ;
+ quint32 mHeparinDispensingRateMinRejectionReason ;
+ quint32 mHeparinDispensingRateMaxRejectionReason ;
+ quint32 mHeparinDispensingRateDefRejectionReason ;
+ quint32 mHeparinStopTimeMinRejectionReason ;
+ quint32 mHeparinStopTimeMaxRejectionReason ;
+ quint32 mDialysateTempMinRejectionReason ;
+ quint32 mDialysateTempMaxRejectionReason ;
+ quint32 mDialysateTempDefRejectionReason ;
+ quint32 mAcidConcentratePotassiumMinRejectionReason ;
+ quint32 mAcidConcentratePotassiumMaxRejectionReason ;
+ quint32 mAcidConcentrateCalciumMinRejectionReason ;
+ quint32 mAcidConcentrateCalciumMaxRejectionReason ;
+ quint32 mBicarbFinalDialysateCompositionMinRejectionReason ;
+ quint32 mBicarbFinalDialysateCompositionMaxRejectionReason ;
+ quint32 mBicarbFinalDialysateCompositionDefRejectionReason ;
+ quint32 mSodiumFinalDialysateCompositionMinRejectionReason ;
+ quint32 mSodiumFinalDialysateCompositionMaxRejectionReason ;
+ quint32 mSodiumFinalDialysateCompositionDefRejectionReason ;
+ quint32 mFluidBolusVolumeMinRejectionReason ;
+ quint32 mFluidBolusVolumeMaxRejectionReason ;
+ quint32 mFluidBolusVolumeDefRejectionReason ;
+ quint32 mArterialPressureLimitWindowMinRejectionReason ;
+ quint32 mArterialPressureLimitWindowMaxRejectionReason ;
+ quint32 mArterialPressureLimitWindowDefRejectionReason ;
+ quint32 mVenousPressureLimitWindowMinRejectionReason ;
+ quint32 mVenousPressureLimitWindowMaxRejectionReason ;
+ quint32 mVenousPressureLimitWindowDefRejectionReason ;
+ quint32 mVenousPressureLimitAsymtrcMinRejectionReason ;
+ quint32 mVenousPressureLimitAsymtrcMaxRejectionReason ;
+ quint32 mVenousPressureLimitAsymtrcDefRejectionReason ;
+ quint32 mTrancembrncPressureLimitWindowMinRejectionReason ;
+ quint32 mTrancembrncPressureLimitWindowMaxRejectionReason ;
+ quint32 mTrancembrncPressureLimitWindowDefRejectionReason ;
+ quint32 mUltrafiltrationVolumeMinRejectionReason ;
+ quint32 mUltrafiltrationVolumeMaxRejectionReason ;
+ quint32 mUltrafiltrationVolumeDefRejectionReason ;
+ quint32 mVitalsIntervalDefRejectionReason ;
+ quint32 mRinsebackVolumeMinRejectionReason ;
+ quint32 mRinsebackVolumeMaxRejectionReason ;
+ quint32 mRinsebackVolumeDefRejectionReason ;
+ quint32 mRinsebackFlowRateMinRejectionReason ;
+ quint32 mRinsebackFlowRateMaxRejectionReason ;
+ quint32 mRinsebackFlowRateDefRejectionReason ;
+ quint32 mSubstitutionVolumeMinRejectionReason ;
+ quint32 mSubstitutionVolumeMaxRejectionReason ;
+ quint32 mSubstitutionVolumeDefRejectionReason ;
+ };
+
+ MAdjustInstitutionalRecordResponse () { }
+
+ bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override;
+ Data data ( ) const ;
+};
+}
+
+typedef Model::MAdjustInstitutionalRecordResponse::Data AdjustInstitutionalRecordResponseData;
Index: sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.cpp
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.cpp (revision 0)
+++ sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,116 @@
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file MTDAdvancedInstitutionalRecordResponse.cpp
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#include "MTDAdvancedInstitutionalRecordResponse.h"
+
+using namespace Model;
+
+QVariantList MAdvancedInstitutionalRecordResponse::parameters() const {
+ return {
+ _data.mAccepted .value,
+ _data.mReason .value,
+ _data.mMinRORejectionRatioAlarmMin .value,
+ _data.mMinRORejectionRatioAlarmMax .value,
+ _data.mMinRORejectionRatioAlarmDef .value,
+ _data.mDisinfectionFrequencyMin .value,
+ _data.mDisinfectionFrequencyMax .value,
+ _data.mDisinfectionFrequencyDef .value,
+ _data.mDisinfectionParametersCycleTimeMin.value,
+ _data.mDisinfectionParametersCycleTimeMax.value,
+ _data.mDisinfectionParametersCycleTimeDef.value,
+ _data.mMaxBloodPumpStopTimeMin .value,
+ _data.mMaxBloodPumpStopTimeMax .value,
+ _data.mMaxBloodPumpStopTimeDef .value,
+ _data.mInletWaterCondLowThresholdMin .value,
+ _data.mInletWaterCondLowThresholdMax .value,
+ _data.mInletWaterCondLowThresholdDef .value,
+ _data.mInletWaterCondHighThresholdMin .value,
+ _data.mInletWaterCondHighThresholdMax .value,
+ _data.mInletWaterCondHighThresholdDef .value,
+ _data.mChlorineWaterSampleCheckMin .value,
+ _data.mChlorineWaterSampleCheckMax .value,
+ _data.mChlorineWaterSampleCheckDef .value,
+ _data.mWaterSampleTestResultRequiredDef .value,
+ };
+}
+
+bool MAdvancedInstitutionalRecordResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) {
+ int index = 0; // message data start position
+ if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMinRORejectionRatioAlarmDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionFrequencyDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeMin)) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeMax)) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDisinfectionParametersCycleTimeDef)) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mMaxBloodPumpStopTimeDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondLowThresholdDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mInletWaterCondHighThresholdDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mChlorineWaterSampleCheckDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mWaterSampleTestResultRequiredDef )) goto lError;
+
+ return true ;
+
+lError:
+ if(vIndex) { *vIndex = index; }
+
+ return false ;
+}
+
+/*!
+ * \brief MAdvancedInstitutionalRecordResponse::data
+ * \details Provides model's Data from the received messages data values
+ * \return Data
+ */
+AdvancedInstitutionalRecordResponseData MAdvancedInstitutionalRecordResponse::data() const {
+ Data data;
+ data.mAccepted = _data.mAccepted .value;
+ data.mReason = _data.mReason .value;
+ data.mMinRORejectionRatioAlarmMin = _data.mMinRORejectionRatioAlarmMin .value;
+ data.mMinRORejectionRatioAlarmMax = _data.mMinRORejectionRatioAlarmMax .value;
+ data.mMinRORejectionRatioAlarmDef = _data.mMinRORejectionRatioAlarmDef .value;
+ data.mDisinfectionFrequencyMin = _data.mDisinfectionFrequencyMin .value;
+ data.mDisinfectionFrequencyMax = _data.mDisinfectionFrequencyMax .value;
+ data.mDisinfectionFrequencyDef = _data.mDisinfectionFrequencyDef .value;
+ data.mDisinfectionParametersCycleTimeMin = _data.mDisinfectionParametersCycleTimeMin .value;
+ data.mDisinfectionParametersCycleTimeMax = _data.mDisinfectionParametersCycleTimeMax .value;
+ data.mDisinfectionParametersCycleTimeDef = _data.mDisinfectionParametersCycleTimeDef .value;
+ data.mMaxBloodPumpStopTimeMin = _data.mMaxBloodPumpStopTimeMin .value;
+ data.mMaxBloodPumpStopTimeMax = _data.mMaxBloodPumpStopTimeMax .value;
+ data.mMaxBloodPumpStopTimeDef = _data.mMaxBloodPumpStopTimeDef .value;
+ data.mInletWaterCondLowThresholdMin = _data.mInletWaterCondLowThresholdMin .value;
+ data.mInletWaterCondLowThresholdMax = _data.mInletWaterCondLowThresholdMax .value;
+ data.mInletWaterCondLowThresholdDef = _data.mInletWaterCondLowThresholdDef .value;
+ data.mInletWaterCondHighThresholdMin = _data.mInletWaterCondHighThresholdMin .value;
+ data.mInletWaterCondHighThresholdMax = _data.mInletWaterCondHighThresholdMax .value;
+ data.mInletWaterCondHighThresholdDef = _data.mInletWaterCondHighThresholdDef .value;
+ data.mChlorineWaterSampleCheckMin = _data.mChlorineWaterSampleCheckMin .value;
+ data.mChlorineWaterSampleCheckMax = _data.mChlorineWaterSampleCheckMax .value;
+ data.mChlorineWaterSampleCheckDef = _data.mChlorineWaterSampleCheckDef .value;
+ data.mWaterSampleTestResultRequiredDef = _data.mWaterSampleTestResultRequiredDef .value;
+
+ return data;
+}
Index: sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.h
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.h (revision 0)
+++ sources/model/td/adjustment/settings/MTDAdvancedInstitutionalRecordResponse.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,149 @@
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file MTDAdvancedInstitutionalRecordResponse.h
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "MAbstract.h"
+#include "types.h"
+
+// forward declarations
+class tst_models;
+
+namespace Model {
+
+/*!
+ * \brief The MTDAdvancedInstitutionalRecordResponse class
+ * \details The TD Institutional response model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:----:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * |0x8700| 0x020 | Rsp | Y | HD | UI | Service Mode |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mAccepted |
+ * | #2: (U32) | \ref Data::mReason |
+ * | #3: (U32) | \ref Data::mMinRORejectionRatioAlarmMin |
+ * | #4: (U32) | \ref Data::mMinRORejectionRatioAlarmMax |
+ * | #5: (U32) | \ref Data::mMinRORejectionRatioAlarmDef |
+ * | #6: (U32) | \ref Data::mDisinfectionFrequencyMin |
+ * | #7: (U32) | \ref Data::mDisinfectionFrequencyMax |
+ * | #8: (U32) | \ref Data::mDisinfectionFrequencyDef |
+ * | #9: (U32) | \ref Data::mDisinfectionParametersCycleTimeMin |
+ * | #10:(U32) | \ref Data::mDisinfectionParametersCycleTimeMax |
+ * | #11:(U32) | \ref Data::mDisinfectionParametersCycleTimeDef |
+ * | #12:(U32) | \ref Data::mMaxBloodPumpStopTimeMin |
+ * | #13:(U32) | \ref Data::mMaxBloodPumpStopTimeMax |
+ * | #14:(U32) | \ref Data::mMaxBloodPumpStopTimeDef |
+ * | #15:(U32) | \ref Data::mInletWaterCondLowThresholdMin |
+ * | #16:(U32) | \ref Data::mInletWaterCondLowThresholdMax |
+ * | #17:(U32) | \ref Data::mInletWaterCondLowThresholdDef |
+ * | #18:(U32) | \ref Data::mInletWaterCondHighThresholdMin |
+ * | #19:(U32) | \ref Data::mInletWaterCondHighThresholdMax |
+ * | #20:(U32) | \ref Data::mInletWaterCondHighThresholdDef |
+ * | #21:(U32) | \ref Data::mChlorineWaterSampleCheckMin |
+ * | #22:(U32) | \ref Data::mChlorineWaterSampleCheckMax |
+ * | #23:(U32) | \ref Data::mChlorineWaterSampleCheckDef |
+ * | #24:(U32) | \ref Data::mWaterSampleTestResultRequiredDef |
+
+ *
+ * \sa Data
+ *
+ *
+ * | ||
+ * | ||
+ * | typeText | Event |
+ * | unitText | HD |
+ * | infoText | ServiceMode |
+ *
+ */
+class MAdvancedInstitutionalRecordResponse : public MAbstract {
+
+ // friends
+ friend class ::tst_models;
+
+ QVariantList parameters() const override;
+
+ struct {
+ Types::U32 mAccepted ;
+ Types::U32 mReason ;
+ Types::U32 mMinRORejectionRatioAlarmMin ;
+ Types::U32 mMinRORejectionRatioAlarmMax ;
+ Types::U32 mMinRORejectionRatioAlarmDef ;
+ Types::U32 mDisinfectionFrequencyMin ;
+ Types::U32 mDisinfectionFrequencyMax ;
+ Types::U32 mDisinfectionFrequencyDef ;
+ Types::U32 mDisinfectionParametersCycleTimeMin ;
+ Types::U32 mDisinfectionParametersCycleTimeMax ;
+ Types::U32 mDisinfectionParametersCycleTimeDef ;
+ Types::U32 mMaxBloodPumpStopTimeMin ;
+ Types::U32 mMaxBloodPumpStopTimeMax ;
+ Types::U32 mMaxBloodPumpStopTimeDef ;
+ Types::U32 mInletWaterCondLowThresholdMin ;
+ Types::U32 mInletWaterCondLowThresholdMax ;
+ Types::U32 mInletWaterCondLowThresholdDef ;
+ Types::U32 mInletWaterCondHighThresholdMin ;
+ Types::U32 mInletWaterCondHighThresholdMax ;
+ Types::U32 mInletWaterCondHighThresholdDef ;
+ Types::U32 mChlorineWaterSampleCheckMin ;
+ Types::U32 mChlorineWaterSampleCheckMax ;
+ Types::U32 mChlorineWaterSampleCheckDef ;
+ Types::U32 mWaterSampleTestResultRequiredDef ;
+ } _data;
+
+public:
+ Type_Enum typeText () const override { return Type_Enum::eEvent ; }
+ Unit_Enum unitText () const override { return Unit_Enum::eTD ; }
+ QString infoText () const override { return QString("AdvancedInstitutionalRecord") ; }
+
+ struct Data {
+ bool mAccepted = true ; /*!< Accepted value of type quint32 extracted out */
+ quint32 mReason = 0 ; /*!< Reason value of type quint32 extracted out */
+ quint32 mMinRORejectionRatioAlarmMin ;
+ quint32 mMinRORejectionRatioAlarmMax ;
+ quint32 mMinRORejectionRatioAlarmDef ;
+ quint32 mDisinfectionFrequencyMin ;
+ quint32 mDisinfectionFrequencyMax ;
+ quint32 mDisinfectionFrequencyDef ;
+ quint32 mDisinfectionParametersCycleTimeMin ;
+ quint32 mDisinfectionParametersCycleTimeMax ;
+ quint32 mDisinfectionParametersCycleTimeDef ;
+ quint32 mMaxBloodPumpStopTimeMin ;
+ quint32 mMaxBloodPumpStopTimeMax ;
+ quint32 mMaxBloodPumpStopTimeDef ;
+ quint32 mInletWaterCondLowThresholdMin ;
+ quint32 mInletWaterCondLowThresholdMax ;
+ quint32 mInletWaterCondLowThresholdDef ;
+ quint32 mInletWaterCondHighThresholdMin ;
+ quint32 mInletWaterCondHighThresholdMax ;
+ quint32 mInletWaterCondHighThresholdDef ;
+ quint32 mChlorineWaterSampleCheckMin ;
+ quint32 mChlorineWaterSampleCheckMax ;
+ quint32 mChlorineWaterSampleCheckDef ;
+ quint32 mWaterSampleTestResultRequiredDef ;
+
+ };
+
+ MAdvancedInstitutionalRecordResponse () { }
+
+ bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override;
+ Data data ( ) const ;
+};
+}
+
+typedef Model::MAdvancedInstitutionalRecordResponse::Data AdvancedInstitutionalRecordResponseData;
Index: sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.cpp
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.cpp (revision 0)
+++ sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,224 @@
+
+/*!
+ *
+ * Copyright (c) 2024-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 MTDInstitutionalRecordResponse.cpp
+ * \author (last) Dara Navaei
+ * \date (last) 19-Mar-2024
+ * \author (original) Dara Navaei
+ * \date (original) 28-Feb-2024
+ *
+ */
+#include "MTDInstitutionalRecordResponse.h"
+
+using namespace Model;
+
+QVariantList MInstitutionalRecordResponse::parameters() const {
+ return {
+ _data.mAccepted .value,
+ _data.mReason .value,
+ _data.mBloodFlowMin .value,
+ _data.mBloodFlowMax .value,
+ _data.mBloodFlowDef .value,
+ _data.mDialysateFlowMin .value,
+ _data.mDialysateFlowMax .value,
+ _data.mDialysateFlowDef .value,
+ _data.mTreatmentDurationMin .value,
+ _data.mTreatmentDurationMax .value,
+ _data.mTreatmentDurationDef .value,
+ _data.mHepBolusVolumeMin .value,
+ _data.mHepBolusVolumeMax .value,
+ _data.mHepBolusVolumeDef .value,
+ _data.mHepDispRateMin .value,
+ _data.mHepDispRateMax .value,
+ _data.mHepDispRateDef .value,
+ _data.mHepStopTimeMin .value,
+ _data.mHepStopTimeMax .value,
+ _data.mDialysateTempMin .value,
+ _data.mDialysateTempMax .value,
+ _data.mDialysateTempDef .value,
+ _data.mPotassiumMin .value,
+ _data.mPotassiumMax .value,
+ _data.mCalciumMin .value,
+ _data.mCalciumMax .value,
+ _data.mDialysateBicarbonateMin .value,
+ _data.mDialysateBicarbonateMax .value,
+ _data.mDialysateBicarbonateDef .value,
+ _data.mDialysateSodiumMin .value,
+ _data.mDialysateSodiumMax .value,
+ _data.mDialysateSodiumDef .value,
+ _data.mFluidBolusVolumeMin .value,
+ _data.mFluidBolusVolumeMax .value,
+ _data.mFluidBolusVolumeDef .value,
+ _data.mArterialWindowMin .value,
+ _data.mArterialWindowMax .value,
+ _data.mArterialWindowDef .value,
+ _data.mVenousWindowMin .value,
+ _data.mVenousWindowMax .value,
+ _data.mVenousWindowDef .value,
+ _data.mVenousAsymmetricMin .value,
+ _data.mVenousAsymmetricMax .value,
+ _data.mVenousAsymmetricDef .value,
+ _data.mTMPWindowMin .value,
+ _data.mTMPWindowMax .value,
+ _data.mTMPWindowDef .value,
+ _data.mUltrafiltrationVolumeMin .value,
+ _data.mUltrafiltrationVolumeMax .value,
+ _data.mUltrafiltrationVolumeDef .value,
+ _data.mVitalsIntervalDef .value,
+ _data.mRinsebackVolumeMin .value,
+ _data.mRinsebackVolumeMax .value,
+ _data.mRinsebackVolumeDef .value,
+ _data.mRinsebackFlowRateMin .value,
+ _data.mRinsebackFlowRateMax .value,
+ _data.mRinsebackFlowRateDef .value,
+ _data.mSubstitutionVolumeMin .value,
+ _data.mSubstitutionVolumeMax .value,
+ _data.mSubstitutionVolumeDef .value,
+ };
+}
+
+bool MInstitutionalRecordResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) {
+ int index = 0; // message data start position
+ if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mReason )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mBloodFlowDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateFlowDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTreatmentDurationDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepBolusVolumeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepBolusVolumeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepBolusVolumeDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepDispRateMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepDispRateMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepDispRateDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepStopTimeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mHepStopTimeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateTempDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mPotassiumMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mPotassiumMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mCalciumMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mCalciumMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateBicarbonateMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateBicarbonateMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateBicarbonateDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateSodiumMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateSodiumMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mDialysateSodiumDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mFluidBolusVolumeDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialWindowMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialWindowMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mArterialWindowDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousWindowMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousWindowMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousWindowDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousAsymmetricMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousAsymmetricMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVenousAsymmetricDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTMPWindowMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTMPWindowMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mTMPWindowDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mUltrafiltrationVolumeDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mVitalsIntervalDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackVolumeDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mRinsebackFlowRateDef )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeMin )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeMax )) goto lError;
+ if ( ! GetValue(vByteArray, index, _data.mSubstitutionVolumeDef )) goto lError;
+
+ return true ;
+
+lError:
+ if(vIndex) { *vIndex = index; }
+
+ return false ;
+}
+
+/*!
+ * \brief MTDInstitutionalRecordResponse::data
+ * \details Provides model's Data from the received messages data values
+ * \return Data
+ */
+InstitutionalRecordResponseData MInstitutionalRecordResponse::data() const {
+ Data data;
+ data.mAccepted = _data.mAccepted .value;
+ data.mReason = _data.mReason .value;
+ data.mBloodFlowMin = _data.mBloodFlowMin .value;
+ data.mBloodFlowMax = _data.mBloodFlowMax .value;
+ data.mBloodFlowDef = _data.mBloodFlowDef .value;
+ data.mDialysateFlowMin = _data.mDialysateFlowMin .value;
+ data.mDialysateFlowMax = _data.mDialysateFlowMax .value;
+ data.mDialysateFlowDef = _data.mDialysateFlowDef .value;
+ data.mTreatmentDurationMin = _data.mTreatmentDurationMin .value;
+ data.mTreatmentDurationMax = _data.mTreatmentDurationMax .value;
+ data.mTreatmentDurationDef = _data.mTreatmentDurationDef .value;
+ data.mHepBolusVolumeMin = _data.mHepBolusVolumeMin .value;
+ data.mHepBolusVolumeMax = _data.mHepBolusVolumeMax .value;
+ data.mHepBolusVolumeDef = _data.mHepBolusVolumeDef .value;
+ data.mHepDispRateMin = _data.mHepDispRateMin .value;
+ data.mHepDispRateMax = _data.mHepDispRateMax .value;
+ data.mHepDispRateDef = _data.mHepDispRateDef .value;
+ data.mHepStopTimeMin = _data.mHepStopTimeMin .value;
+ data.mHepStopTimeMax = _data.mHepStopTimeMax .value;
+ data.mDialysateTempMin = _data.mDialysateTempMin .value;
+ data.mDialysateTempMax = _data.mDialysateTempMax .value;
+ data.mDialysateTempDef = _data.mDialysateTempDef .value;
+ data.mPotassiumMin = _data.mPotassiumMin .value;
+ data.mPotassiumMax = _data.mPotassiumMax .value;
+ data.mCalciumMin = _data.mCalciumMin .value;
+ data.mCalciumMax = _data.mCalciumMax .value;
+ data.mDialysateBicarbonateMin = _data.mDialysateBicarbonateMin .value;
+ data.mDialysateBicarbonateMax = _data.mDialysateBicarbonateMax .value;
+ data.mDialysateBicarbonateDef = _data.mDialysateBicarbonateDef .value;
+ data.mDialysateSodiumMin = _data.mDialysateSodiumMin .value;
+ data.mDialysateSodiumMax = _data.mDialysateSodiumMax .value;
+ data.mDialysateSodiumDef = _data.mDialysateSodiumDef .value;
+ data.mFluidBolusVolumeMin = _data.mFluidBolusVolumeMin .value;
+ data.mFluidBolusVolumeMax = _data.mFluidBolusVolumeMax .value;
+ data.mFluidBolusVolumeDef = _data.mFluidBolusVolumeDef .value;
+ data.mArterialWindowMin = _data.mArterialWindowMin .value;
+ data.mArterialWindowMax = _data.mArterialWindowMax .value;
+ data.mArterialWindowDef = _data.mArterialWindowDef .value;
+ data.mVenousWindowMin = _data.mVenousWindowMin .value;
+ data.mVenousWindowMax = _data.mVenousWindowMax .value;
+ data.mVenousWindowDef = _data.mVenousWindowDef .value;
+ data.mVenousAsymmetricMin = _data.mVenousAsymmetricMin .value;
+ data.mVenousAsymmetricMax = _data.mVenousAsymmetricMax .value;
+ data.mVenousAsymmetricDef = _data.mVenousAsymmetricDef .value;
+ data.mTMPWindowMin = _data.mTMPWindowMin .value;
+ data.mTMPWindowMax = _data.mTMPWindowMax .value;
+ data.mTMPWindowDef = _data.mTMPWindowDef .value;
+ data.mUltrafiltrationVolumeMin = _data.mUltrafiltrationVolumeMin .value;
+ data.mUltrafiltrationVolumeMax = _data.mUltrafiltrationVolumeMax .value;
+ data.mUltrafiltrationVolumeDef = _data.mUltrafiltrationVolumeDef .value;
+ data.mVitalsIntervalDef = _data.mVitalsIntervalDef .value;
+ data.mRinsebackVolumeMin = _data.mRinsebackVolumeMin .value;
+ data.mRinsebackVolumeMax = _data.mRinsebackVolumeMax .value;
+ data.mRinsebackVolumeDef = _data.mRinsebackVolumeDef .value;
+ data.mRinsebackFlowRateMin = _data.mRinsebackFlowRateMin .value;
+ data.mRinsebackFlowRateMax = _data.mRinsebackFlowRateMax .value;
+ data.mRinsebackFlowRateDef = _data.mRinsebackFlowRateDef .value;
+ data.mSubstitutionVolumeMin = _data.mSubstitutionVolumeMin .value;
+ data.mSubstitutionVolumeMax = _data.mSubstitutionVolumeMax .value;
+ data.mSubstitutionVolumeDef = _data.mSubstitutionVolumeDef .value;
+ return data;
+}
Index: sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.h
===================================================================
diff -u
--- sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.h (revision 0)
+++ sources/model/td/adjustment/settings/MTDInstitutionalRecordResponse.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,255 @@
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file MTDInstitutionalRecordResponse.h
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "MAbstract.h"
+#include "types.h"
+
+// forward declarations
+class tst_models;
+
+namespace Model {
+
+/*!
+ * \brief The MTDInstitutionalRecordResponse class
+ * \details The TD Institutional response model
+ *
+ * | MSG | CAN ID | Type | Ack | Src | Dest | Description |
+ * |:----:|:------:|:----:|:---:|:---:|:----:|:-----------:|
+ * |0x8300| 0x020 | Rsp | Y | HD | UI | Service Mode |
+ *
+ * | Payload ||
+ * | ||
+ * | #1: (U32) | \ref Data::mAccepted |
+ * | #2: (U32) | \ref Data::mReason |
+ * | #3: (U32) | \ref Data::mBloodFlowMin |
+ * | #4: (U32) | \ref Data::mBloodFlowMax |
+ * | #5: (U32) | \ref Data::mBloodFlowDef |
+ * | #6: (U32) | \ref Data::mDialysateFlowMin |
+ * | #7: (U32) | \ref Data::mDialysateFlowMax |
+ * | #8: (U32) | \ref Data::mDialysateFlowDef |
+ * | #9: (U32) | \ref Data::mTreatmentDurationMin |
+ * | #10:(U32) | \ref Data::mTreatmentDurationMax |
+ * | #11:(U32) | \ref Data::mTreatmentDurationDef |
+ * | #12:(F32) | \ref Data::mHepBolusVolumeMin |
+ * | #13:(F32) | \ref Data::mHepBolusVolumeMax |
+ * | #14:(F32) | \ref Data::mHepBolusVolumeDef |
+ * | #15:(F32) | \ref Data::mHepDispRateMin |
+ * | #16:(F32) | \ref Data::mHepDispRateMax |
+ * | #17:(F32) | \ref Data::mHepDispRateDef |
+ * | #18:(U32) | \ref Data::mHepStopTimeMin |
+ * | #19:(U32) | \ref Data::mHepStopTimeMax |
+ * | #20:(F32) | \ref Data::mDialysateTempMin |
+ * | #21:(F32) | \ref Data::mDialysateTempMax |
+ * | #22:(F32) | \ref Data::mDialysateTempDef |
+ * | #23:(F32) | \ref Data::mPotassiumMin |
+ * | #24:(F32) | \ref Data::mPotassiumMax |
+ * | #25:(F32) | \ref Data::mCalciumMin |
+ * | #26:(F32) | \ref Data::mCalciumMax |
+ * | #27:(U32) | \ref Data::mDialysateBicarbonateMin |
+ * | #28:(U32) | \ref Data::mDialysateBicarbonateMax |
+ * | #29:(U32) | \ref Data::mDialysateBicarbonateDef |
+ * | #30:(U32) | \ref Data::mDialysateSodiumMin |
+ * | #31:(U32) | \ref Data::mDialysateSodiumMax |
+ * | #32:(U32) | \ref Data::mDialysateSodiumDef |
+ * | #33:(U32) | \ref Data::mFluidBolusVolumeMin |
+ * | #34:(U32) | \ref Data::mFluidBolusVolumeMax |
+ * | #35:(U32) | \ref Data::mFluidBolusVolumeDef |
+ * | #36:(U32) | \ref Data::mArterialWindowMin |
+ * | #37:(U32) | \ref Data::mArterialWindowMax |
+ * | #38:(U32) | \ref Data::mArterialWindowDef |
+ * | #39:(U32) | \ref Data::mVenousWindowMin |
+ * | #40:(U32) | \ref Data::mVenousWindowMax |
+ * | #41:(U32) | \ref Data::mVenousWindowDef |
+ * | #42:(U32) | \ref Data::mVenousAsymmetricMin |
+ * | #43:(U32) | \ref Data::mVenousAsymmetricMax |
+ * | #44:(U32) | \ref Data::mVenousAsymmetricDef |
+ * | #45:(U32) | \ref Data::mTMPWindowMin |
+ * | #46:(U32) | \ref Data::mTMPWindowMax |
+ * | #47:(U32) | \ref Data::mTMPWindowDef |
+ * | #48:(F32) | \ref Data::mUltrafiltrationVolumeMin |
+ * | #49:(F32) | \ref Data::mUltrafiltrationVolumeMax |
+ * | #50:(F32) | \ref Data::mUltrafiltrationVolumeDef |
+ * | #51:(U32) | \ref Data::mVitalsIntervalDef |
+ * | #52:(U32) | \ref Data::mRinsebackVolumeMin |
+ * | #53:(U32) | \ref Data::mRinsebackVolumeMax |
+ * | #54:(U32) | \ref Data::mRinsebackVolumeDef |
+ * | #55:(U32) | \ref Data::mRinsebackFlowRateMin |
+ * | #56:(U32) | \ref Data::mRinsebackFlowRateMax |
+ * | #57:(U32) | \ref Data::mRinsebackFlowRateDef |
+ * | #58:(F32) | \ref Data::mSubstitutionVolumeMin |
+ * | #59:(F32) | \ref Data::mSubstitutionVolumeMax |
+ * | #60:(F32) | \ref Data::mSubstitutionVolumeDef |
+ *
+ * \sa Data
+ *
+ *
+ * | ||
+ * | ||
+ * | typeText | Event |
+ * | unitText | HD |
+ * | infoText | ServiceMode |
+ *
+ */
+class MInstitutionalRecordResponse : public MAbstract {
+
+ // friends
+ friend class ::tst_models;
+
+ QVariantList parameters() const override;
+
+ struct {
+ Types::U32 mAccepted ;
+ Types::U32 mReason ;
+ Types::U32 mBloodFlowMin ;
+ Types::U32 mBloodFlowMax ;
+ Types::U32 mBloodFlowDef ;
+ Types::U32 mDialysateFlowMin ;
+ Types::U32 mDialysateFlowMax ;
+ Types::U32 mDialysateFlowDef ;
+ Types::U32 mTreatmentDurationMin ;
+ Types::U32 mTreatmentDurationMax ;
+ Types::U32 mTreatmentDurationDef ;
+ Types::F32 mHepBolusVolumeMin ;
+ Types::F32 mHepBolusVolumeMax ;
+ Types::F32 mHepBolusVolumeDef ;
+ Types::F32 mHepDispRateMin ;
+ Types::F32 mHepDispRateMax ;
+ Types::F32 mHepDispRateDef ;
+ Types::U32 mHepStopTimeMin ;
+ Types::U32 mHepStopTimeMax ;
+ Types::F32 mDialysateTempMin ;
+ Types::F32 mDialysateTempMax ;
+ Types::F32 mDialysateTempDef ;
+ Types::F32 mPotassiumMin ;
+ Types::F32 mPotassiumMax ;
+ Types::F32 mCalciumMin ;
+ Types::F32 mCalciumMax ;
+ Types::U32 mDialysateBicarbonateMin ;
+ Types::U32 mDialysateBicarbonateMax ;
+ Types::U32 mDialysateBicarbonateDef ;
+ Types::U32 mDialysateSodiumMin ;
+ Types::U32 mDialysateSodiumMax ;
+ Types::U32 mDialysateSodiumDef ;
+ Types::U32 mFluidBolusVolumeMin ;
+ Types::U32 mFluidBolusVolumeMax ;
+ Types::U32 mFluidBolusVolumeDef ;
+ Types::U32 mArterialWindowMin ;
+ Types::U32 mArterialWindowMax ;
+ Types::U32 mArterialWindowDef ;
+ Types::U32 mVenousWindowMin ;
+ Types::U32 mVenousWindowMax ;
+ Types::U32 mVenousWindowDef ;
+ Types::U32 mVenousAsymmetricMin ;
+ Types::U32 mVenousAsymmetricMax ;
+ Types::U32 mVenousAsymmetricDef ;
+ Types::U32 mTMPWindowMin ;
+ Types::U32 mTMPWindowMax ;
+ Types::U32 mTMPWindowDef ;
+ Types::F32 mUltrafiltrationVolumeMin ;
+ Types::F32 mUltrafiltrationVolumeMax ;
+ Types::F32 mUltrafiltrationVolumeDef ;
+ Types::U32 mVitalsIntervalDef ;
+ Types::U32 mRinsebackVolumeMin ;
+ Types::U32 mRinsebackVolumeMax ;
+ Types::U32 mRinsebackVolumeDef ;
+ Types::U32 mRinsebackFlowRateMin ;
+ Types::U32 mRinsebackFlowRateMax ;
+ Types::U32 mRinsebackFlowRateDef ;
+ Types::F32 mSubstitutionVolumeMin ;
+ Types::F32 mSubstitutionVolumeMax ;
+ Types::F32 mSubstitutionVolumeDef ;
+ } _data;
+
+public:
+ Type_Enum typeText () const override { return Type_Enum::eEvent ; }
+ Unit_Enum unitText () const override { return Unit_Enum::eTD ; }
+ QString infoText () const override { return QString("InstitutionalRecord") ; }
+
+ struct Data {
+ bool mAccepted = true ; /*!< Accepted value of type quint32 extracted out */
+ quint32 mReason = 0 ; /*!< Reason value of type quint32 extracted out */
+ quint32 mBloodFlowMin ;
+ quint32 mBloodFlowMax ;
+ quint32 mBloodFlowDef ;
+ quint32 mDialysateFlowMin ;
+ quint32 mDialysateFlowMax ;
+ quint32 mDialysateFlowDef ;
+ quint32 mTreatmentDurationMin ;
+ quint32 mTreatmentDurationMax ;
+ quint32 mTreatmentDurationDef ;
+ float mHepBolusVolumeMin ;
+ float mHepBolusVolumeMax ;
+ float mHepBolusVolumeDef ;
+ float mHepDispRateMin ;
+ float mHepDispRateMax ;
+ float mHepDispRateDef ;
+ quint32 mHepStopTimeMin ;
+ quint32 mHepStopTimeMax ;
+ float mDialysateTempMin ;
+ float mDialysateTempMax ;
+ float mDialysateTempDef ;
+ float mPotassiumMin ;
+ float mPotassiumMax ;
+ float mCalciumMin ;
+ float mCalciumMax ;
+ quint32 mDialysateBicarbonateMin ;
+ quint32 mDialysateBicarbonateMax ;
+ quint32 mDialysateBicarbonateDef ;
+ quint32 mDialysateSodiumMin ;
+ quint32 mDialysateSodiumMax ;
+ quint32 mDialysateSodiumDef ;
+ quint32 mFluidBolusVolumeMin ;
+ quint32 mFluidBolusVolumeMax ;
+ quint32 mFluidBolusVolumeDef ;
+ quint32 mArterialWindowMin ;
+ quint32 mArterialWindowMax ;
+ quint32 mArterialWindowDef ;
+ quint32 mVenousWindowMin ;
+ quint32 mVenousWindowMax ;
+ quint32 mVenousWindowDef ;
+ quint32 mVenousAsymmetricMin ;
+ quint32 mVenousAsymmetricMax ;
+ quint32 mVenousAsymmetricDef ;
+ quint32 mTMPWindowMin ;
+ quint32 mTMPWindowMax ;
+ quint32 mTMPWindowDef ;
+ float mUltrafiltrationVolumeMin ;
+ float mUltrafiltrationVolumeMax ;
+ float mUltrafiltrationVolumeDef ;
+ quint32 mVitalsIntervalDef ;
+ quint32 mRinsebackVolumeMin ;
+ quint32 mRinsebackVolumeMax ;
+ quint32 mRinsebackVolumeDef ;
+ quint32 mRinsebackFlowRateMin ;
+ quint32 mRinsebackFlowRateMax ;
+ quint32 mRinsebackFlowRateDef ;
+ float mSubstitutionVolumeMin ;
+ float mSubstitutionVolumeMax ;
+ float mSubstitutionVolumeDef ;
+ };
+
+ MInstitutionalRecordResponse () { }
+
+ bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override;
+ Data data ( ) const ;
+};
+}
+
+typedef Model::MInstitutionalRecordResponse::Data InstitutionalRecordResponseData;
Index: sources/view/VView.h
===================================================================
diff -u -r9048646630717f980a852df54349805ba63773e0 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/view/VView.h (.../VView.h) (revision 9048646630717f980a852df54349805ba63773e0)
+++ sources/view/VView.h (.../VView.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -141,6 +141,9 @@
REGISTER_TYPE( VCloudSync ) \
REGISTER_TYPE( VHDUsageInfo ) \
REGISTER_TYPE( VAdjustmentInstitutionalRecord ) \
+ REGISTER_TYPE( VInstitutionalRecord ) \
+ REGISTER_TYPE( VAdjustmentAdvancedInstitutionalRecord ) \
+ REGISTER_TYPE( VAdvancedInstitutionalRecord ) \
/* Alarm */ \
REGISTER_TYPE( VAlarmStatus ) \
REGISTER_TYPE( VAlarmActiveList ) \
Index: sources/view/hd/data/VTreatmentRanges.cpp
===================================================================
diff -u -rc369e34e8864b8b7a7bca07b77f5d3a41701ffbf -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision c369e34e8864b8b7a7bca07b77f5d3a41701ffbf)
+++ sources/view/hd/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -161,6 +161,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,13 +181,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 );
@@ -224,13 +242,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 -rde099919f262c3429cb0592ef71deb6a16e92892 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision de099919f262c3429cb0592ef71deb6a16e92892)
+++ sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -57,11 +57,17 @@
VALUESET( float , potassium , 0)
VALUESET( float , calcium , 0)
+ RANGESET( quint32 , dialysateBicarbonate , 0)
+ RANGESET( quint32 , dialysateSodium , 0)
+
READONLY( QStringList , heparinTypeOptions ,{})
READONLY( QStringList , acidConcentrateOptions ,{})
READONLY( QStringList , bicarbonateConcentrateOptions ,{})
READONLY( QStringList , dialyzerTypeOptions ,{})
READONLY( QStringList , bloodPressureMeasureInterval ,{})
+ READONLY( QStringList , treatmentModalityOptions ,{})
+ READONLY( QStringList , hdfTreatmentModeOptions ,{})
+ READONLY( QStringList , dryBicabCartridgeSizeOptions ,{})
PROPERTY( QString , acidConcentrate ,"")
TRIGGER ( bool , acidConcentrateAccepted , false)
@@ -72,7 +78,19 @@
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 , trancembrncPressureMonitor , 0)
RANGESET( qint32 , arterialPressureMonitor , 0)
Index: sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.cpp
===================================================================
diff -u
--- sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.cpp (revision 0)
+++ sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,99 @@
+/*!
+ *
+ * Copyright (c) 2024-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 VAdjustmentAdvancedInstitutionalRecord.cpp
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#include "VAdjustmentAdvancedInstitutionalRecord.h"
+
+// Project
+#include "GuiController.h"
+#include "format.h"
+
+
+VIEW_DEF_CLASS_ADJUSTMENT(VAdjustmentAdvancedInstitutionalRecord)
+
+void View::VAdjustmentAdvancedInstitutionalRecord::initConnections()
+{
+ ADJUST_VIEW_CONNECTION(AdjustAdvancedInstitutionalRequestData)
+ ACTION_VIEW_CONNECTION(AdjustAdvancedInstitutionalRecordResponseData)
+}
+
+/**
+// * \brief View::VAdjustmentAdvancedInstitutionalRecord::onActionReceive
+// * Slot to handle a adjust institutional record response from FW
+// * \param actionType The action type must be a institutional record response
+// * \param messageData The message data must contain the reject reason codes for all parameters
+// * \returns True if FW OK's treatment parameters, false otherwise
+ */
+void View::VAdjustmentAdvancedInstitutionalRecord::onActionReceive(const AdjustAdvancedInstitutionalRecordResponseData &vData)
+{
+ adjustment_Accepted ( vData.mAccepted );
+ minRORejectionRatioAlarmMinRejectionReason ( vData.mMinRORejectionRatioAlarmMinRejectionReason );
+ minRORejectionRatioAlarmMaxRejectionReason ( vData.mMinRORejectionRatioAlarmMaxRejectionReason );
+ minRORejectionRatioAlarmDefRejectionReason ( vData.mMinRORejectionRatioAlarmDefRejectionReason );
+ disinfectionFrequencyMinRejectionReason ( vData.mDisinfectionFrequencyMinRejectionReason );
+ disinfectionFrequencyMaxRejectionReason ( vData.mDisinfectionFrequencyMaxRejectionReason );
+ disinfectionFrequencyDefRejectionReason ( vData.mDisinfectionFrequencyDefRejectionReason );
+ disinfectionParametersCycleTimeMinRejectionReason ( vData.mDisinfectionParametersCycleTimeMinRejectionReason );
+ disinfectionParametersCycleTimeMaxRejectionReason ( vData.mDisinfectionParametersCycleTimeMaxRejectionReason );
+ disinfectionParametersCycleTimeDefRejectionReason ( vData.mDisinfectionParametersCycleTimeDefRejectionReason );
+ maxBloodPumpStopTimeMinRejectionReason ( vData.mMaxBloodPumpStopTimeMinRejectionReason );
+ maxBloodPumpStopTimeMaxRejectionReason ( vData.mMaxBloodPumpStopTimeMaxRejectionReason );
+ maxBloodPumpStopTimeDefRejectionReason ( vData.mMaxBloodPumpStopTimeDefRejectionReason );
+ inletWaterCondLowThresholdMinRejectionReason ( vData.mInletWaterCondLowThresholdMinRejectionReason );
+ inletWaterCondLowThresholdMaxRejectionReason ( vData.mInletWaterCondLowThresholdMaxRejectionReason );
+ inletWaterCondLowThresholdDefRejectionReason ( vData.mInletWaterCondLowThresholdDefRejectionReason );
+ inletWaterCondHighThresholdMinRejectionReason ( vData.mInletWaterCondHighThresholdMinRejectionReason );
+ inletWaterCondHighThresholdMaxRejectionReason ( vData.mInletWaterCondHighThresholdMaxRejectionReason );
+ inletWaterCondHighThresholdDefRejectionReason ( vData.mInletWaterCondHighThresholdDefRejectionReason );
+ chlorineWaterSampleCheckMinRejectionReason ( vData.mChlorineWaterSampleCheckMinRejectionReason );
+ chlorineWaterSampleCheckMaxRejectionReason ( vData.mChlorineWaterSampleCheckMaxRejectionReason );
+ chlorineWaterSampleCheckDefRejectionReason ( vData.mChlorineWaterSampleCheckDefRejectionReason );
+ waterSampleTestResultRequiredDefRejectionReason ( vData.mWaterSampleTestResultRequiredDefRejectionReason );
+
+ // *** has to be the last to let the information to be set and then emit the signal ***
+ // *** otherwise will use the Previous values before being set. ***
+ adjustment ( true );
+}
+
+/**
+ * \brief VAdjustmentAdvancedInstitutionalRecord::doConfirm
+ * \details Validates the institutional records with FW
+ */
+void View::VAdjustmentAdvancedInstitutionalRecord::doConfirm()
+{
+ AdjustAdvancedInstitutionalRequestData advancedInstitutionalRecordsRequest;
+ advancedInstitutionalRecordsRequest.mMinRORejectionRatioAlarmMin = _minRORejectionRatioAlarmMin ;
+ advancedInstitutionalRecordsRequest.mMinRORejectionRatioAlarmMax = _minRORejectionRatioAlarmMax ;
+ advancedInstitutionalRecordsRequest.mMinRORejectionRatioAlarmDef = _minRORejectionRatioAlarmDef ;
+ advancedInstitutionalRecordsRequest.mDisinfectionFrequencyMin = _disinfectionFrequencyMin ;
+ advancedInstitutionalRecordsRequest.mDisinfectionFrequencyMax = _disinfectionFrequencyMax ;
+ advancedInstitutionalRecordsRequest.mDisinfectionFrequencyDef = _disinfectionFrequencyDef ;
+ advancedInstitutionalRecordsRequest.mDisinfectionParametersCycleTimeMin = _disinfectionParametersCycleTimeMin;
+ advancedInstitutionalRecordsRequest.mDisinfectionParametersCycleTimeMax = _disinfectionParametersCycleTimeMax;
+ advancedInstitutionalRecordsRequest.mDisinfectionParametersCycleTimeDef = _disinfectionParametersCycleTimeDef;
+ advancedInstitutionalRecordsRequest.mMaxBloodPumpStopTimeMin = _maxBloodPumpStopTimeMin ;
+ advancedInstitutionalRecordsRequest.mMaxBloodPumpStopTimeMax = _maxBloodPumpStopTimeMax ;
+ advancedInstitutionalRecordsRequest.mMaxBloodPumpStopTimeDef = _maxBloodPumpStopTimeDef ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondLowThresholdMin = _inletWaterCondLowThresholdMin ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondLowThresholdMax = _inletWaterCondLowThresholdMax ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondLowThresholdDef = _inletWaterCondLowThresholdDef ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondHighThresholdMin = _inletWaterCondHighThresholdMin ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondHighThresholdMax = _inletWaterCondHighThresholdMax ;
+ advancedInstitutionalRecordsRequest.mInletWaterCondHighThresholdDef = _inletWaterCondHighThresholdDef ;
+ advancedInstitutionalRecordsRequest.mChlorineWaterSampleCheckMin = _chlorineWaterSampleCheckMin ;
+ advancedInstitutionalRecordsRequest.mChlorineWaterSampleCheckMax = _chlorineWaterSampleCheckMax ;
+ advancedInstitutionalRecordsRequest.mChlorineWaterSampleCheckDef = _chlorineWaterSampleCheckDef ;
+ advancedInstitutionalRecordsRequest.mWaterSampleTestResultRequiredDef = _waterSampleTestResultRequiredDef ;
+
+ emit didAdjustment(advancedInstitutionalRecordsRequest);
+}
Index: sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.h
===================================================================
diff -u
--- sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.h (revision 0)
+++ sources/view/settings/VAdjustmentAdvancedInstitutionalRecord.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,84 @@
+/*!
+ *
+ * Copyright (c) 2024-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 VAdjustmentAdvancedInstitutionalRecord.h
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "main.h" // Doxygen : do not remove
+#include "VAdjustmentResponseBase.h"
+#include "MAdjustTDAdvancedInstitutionalRecordResponse.h"
+
+namespace View {
+
+/*!
+ * \brief The VAdjustmentAdvancedInstitutionalRecord class
+ * \details View for Model's Data representation.
+ */
+class VAdjustmentAdvancedInstitutionalRecord : public VAdjustmentResponseBase {
+ Q_OBJECT
+
+ // friends
+ friend class ::tst_views;
+
+
+ // The property adjustment_Triggered has to be always true
+ // and to always trigger the change event to work as a notifier for GUI
+ TRIGGER( bool , adjustment , 0)
+
+ RANGEVALUESET( quint32 , minRORejectionRatioAlarm , 0)
+ RANGEVALUESET( quint32 , disinfectionFrequency , 0)
+ RANGEVALUESET( quint32 , disinfectionParametersCycleTime , 0)
+ RANGEVALUESET( quint32 , maxBloodPumpStopTime , 0)
+ RANGEVALUESET( quint32 , inletWaterCondLowThreshold , 0)
+ RANGEVALUESET( quint32 , inletWaterCondHighThreshold , 0)
+ RANGEVALUESET( quint32 , chlorineWaterSampleCheck , 0)
+ RANGEVALUESET( quint32 , waterSampleTestResultRequired , 0)
+
+ // rejection reasons
+ TRIGGER(quint32 , minRORejectionRatioAlarmMinRejectionReason , 0)
+ TRIGGER(quint32 , minRORejectionRatioAlarmMaxRejectionReason , 0)
+ TRIGGER(quint32 , minRORejectionRatioAlarmDefRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionFrequencyMinRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionFrequencyMaxRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionFrequencyDefRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionParametersCycleTimeMinRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionParametersCycleTimeMaxRejectionReason , 0)
+ TRIGGER(quint32 , disinfectionParametersCycleTimeDefRejectionReason , 0)
+ TRIGGER(quint32 , maxBloodPumpStopTimeMinRejectionReason , 0)
+ TRIGGER(quint32 , maxBloodPumpStopTimeMaxRejectionReason , 0)
+ TRIGGER(quint32 , maxBloodPumpStopTimeDefRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondLowThresholdMinRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondLowThresholdMaxRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondLowThresholdDefRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondHighThresholdMinRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondHighThresholdMaxRejectionReason , 0)
+ TRIGGER(quint32 , inletWaterCondHighThresholdDefRejectionReason , 0)
+ TRIGGER(quint32 , chlorineWaterSampleCheckMinRejectionReason , 0)
+ TRIGGER(quint32 , chlorineWaterSampleCheckMaxRejectionReason , 0)
+ TRIGGER(quint32 , chlorineWaterSampleCheckDefRejectionReason , 0)
+ TRIGGER(quint32 , waterSampleTestResultRequiredDefRejectionReason , 0)
+
+ VIEW_DEC_CLASS_ADJUSTMENT(VAdjustmentAdvancedInstitutionalRecord, AdjustAdvancedInstitutionalRecordResponseData)
+
+public slots:
+ void doConfirm ();
+
+signals:
+ void didAdjustment(const AdjustAdvancedInstitutionalRequestData &vData);
+};
+}
Index: sources/view/settings/VAdjustmentInstitutionalRecord.cpp
===================================================================
diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/view/settings/VAdjustmentInstitutionalRecord.cpp (.../VAdjustmentInstitutionalRecord.cpp) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1)
+++ sources/view/settings/VAdjustmentInstitutionalRecord.cpp (.../VAdjustmentInstitutionalRecord.cpp) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -21,59 +21,151 @@
VIEW_DEF_CLASS_ADJUSTMENT(VAdjustmentInstitutionalRecord)
-void View::VAdjustmentInstitutionalRecord::initConnections() {
+void View::VAdjustmentInstitutionalRecord::initConnections()
+{
ADJUST_VIEW_CONNECTION(AdjustInstitutionalRequestData)
ACTION_VIEW_CONNECTION(AdjustInstitutionalRecordResponseData)
}
+/**
+// * \brief View::VAdjustmentInstitutionalRecord::onActionReceive
+// * Slot to handle a adjust institutional record response from FW
+// * \param actionType The action type must be a institutional record response
+// * \param messageData The message data must contain the reject reason codes for all parameters
+// * \returns True if FW OK's treatment parameters, false otherwise
+ */
void View::VAdjustmentInstitutionalRecord::onActionReceive(const AdjustInstitutionalRecordResponseData &vData)
{
- adjustment_Accepted ( vData.mAccepted );
- adjustment_Reason ( vData.mReason );
- minBloodFlowMLPM ( vData.mMinBloodFlowMLPM );
- maxBloodFlowMLPM ( vData.mMaxBloodFlowMLPM );
- minDialysateFlowMLPM ( vData.mMinDialysateFlowMLPM );
- maxDialysateFlowMLPM ( vData.mMaxDialysateFlowMLPM );
- minTxDurationMIN ( vData.mMinTxDurationMIN );
- maxTxDurationMIN ( vData.mMaxTxDurationMIN );
- minStopHepDispBeforeTxEndMIN ( vData.mMinStopHepDispBeforeTxEndMIN );
- maxStopHepDispBeforeTxEndMIN ( vData.mMaxStopHepDispBeforeTxEndMIN );
- minSalineBolVolumeML ( vData.mMinSalineBolVolumeML );
- maxSalineBolVolumeML ( vData.mMaxSalineBolVolumeML );
- minDialysateTempC ( vData.mMinDialysateTempC );
- maxDialysateTempC ( vData.mMaxDialysateTempC );
- minArtPressLimitWindowMMHG ( vData.mMinArtPressLimitWindowMMHG );
- maxArtPressLimitWindowMMHG ( vData.mMaxArtPressLimitWindowMMHG );
- minVenPressLimitWindowMMHG ( vData.mMinVenPressLimitWindowMMHG );
- maxVenPressLimitWindowMMHG ( vData.mMaxVenPressLimitWindowMMHG );
- minVenAsymPressLimitMMHG ( vData.mMinVenAsymPressLimitMMHG );
- maxVenAsymPressLimitMMHG ( vData.mMaxVenAsymPressLimitMMHG );
- minUltrafiltrationVolumeL ( vData.mMinUltrafiltrationVolumeL );
- maxUltrafiltrationVolumeL ( vData.mMaxUltrafiltrationVolumeL );
- minHepDispRateMLPM ( vData.mMinHepDispRateMLPM );
- maxHepDispRateMLPM ( vData.mMaxHepDispRateMLPM );
- minHepBolVolumeML ( vData.mMinHepBolVolumeML );
- maxHepBolVolumeML ( vData.mMaxHepBolVolumeML );
- enableChemicalDisinfect ( vData.mEnableChemicalDisinfect );
+ adjustment_Accepted ( vData.mAccepted );
+ bloodFlowRateMinRejectionReason ( vData.mBloodFlowRateMinRejectionReason );
+ bloodFlowRateMaxRejectionReason ( vData.mBloodFlowRateMaxRejectionReason );
+ bloodFlowRateDefRejectionReason ( vData.mBloodFlowRateDefRejectionReason );
+ dialysateFlowRateMinRejectionReason ( vData.mDialysateFlowRateMinRejectionReason );
+ dialysateFlowRateMaxRejectionReason ( vData.mDialysateFlowRateMaxRejectionReason );
+ dialysateFlowRateDefRejectionReason ( vData.mDialysateFlowRateDefRejectionReason );
+ treatmentDurationMinRejectionReason ( vData.mTreatmentDurationMinRejectionReason );
+ treatmentDurationMaxRejectionReason ( vData.mTreatmentDurationMaxRejectionReason );
+ treatmentDurationDefRejectionReason ( vData.mTreatmentDurationDefRejectionReason );
+ heparinBolusVolumeMinRejectionReason ( vData.mHeparinBolusVolumeMinRejectionReason );
+ heparinBolusVolumeMaxRejectionReason ( vData.mHeparinBolusVolumeMaxRejectionReason );
+ heparinBolusVolumeDefRejectionReason ( vData.mHeparinBolusVolumeDefRejectionReason );
+ heparinDispensingRateMinRejectionReason ( vData.mHeparinDispensingRateMinRejectionReason );
+ heparinDispensingRateMaxRejectionReason ( vData.mHeparinDispensingRateMaxRejectionReason );
+ heparinDispensingRateDefRejectionReason ( vData.mHeparinDispensingRateDefRejectionReason );
+ heparinStopTimeMinRejectionReason ( vData.mHeparinStopTimeMinRejectionReason );
+ heparinStopTimeMaxRejectionReason ( vData.mHeparinStopTimeMaxRejectionReason );
+ dialysateTempMinRejectionReason ( vData.mDialysateTempMinRejectionReason );
+ dialysateTempMaxRejectionReason ( vData.mDialysateTempMaxRejectionReason );
+ dialysateTempDefRejectionReason ( vData.mDialysateTempDefRejectionReason );
+ acidConcentratePotassiumMinRejectionReason ( vData.mAcidConcentratePotassiumMinRejectionReason );
+ acidConcentratePotassiumMaxRejectionReason ( vData.mAcidConcentratePotassiumMaxRejectionReason );
+ acidConcentrateCalciumMinRejectionReason ( vData.mAcidConcentrateCalciumMinRejectionReason );
+ acidConcentrateCalciumMaxRejectionReason ( vData.mAcidConcentrateCalciumMaxRejectionReason );
+ bicarbFinalDialysateCompositionMinRejectionReason ( vData.mBicarbFinalDialysateCompositionMinRejectionReason );
+ bicarbFinalDialysateCompositionMaxRejectionReason ( vData.mBicarbFinalDialysateCompositionMaxRejectionReason );
+ bicarbFinalDialysateCompositionDefRejectionReason ( vData.mBicarbFinalDialysateCompositionDefRejectionReason );
+ sodiumFinalDialysateCompositionMinRejectionReason ( vData.mSodiumFinalDialysateCompositionMinRejectionReason );
+ sodiumFinalDialysateCompositionMaxRejectionReason ( vData.mSodiumFinalDialysateCompositionMaxRejectionReason );
+ sodiumFinalDialysateCompositionDefRejectionReason ( vData.mSodiumFinalDialysateCompositionDefRejectionReason );
+ fluidBolusVolumeMinRejectionReason ( vData.mFluidBolusVolumeMinRejectionReason );
+ fluidBolusVolumeMaxRejectionReason ( vData.mFluidBolusVolumeMaxRejectionReason );
+ fluidBolusVolumeDefRejectionReason ( vData.mFluidBolusVolumeDefRejectionReason );
+ arterialPressureLimitWindowMinRejectionReason ( vData.mArterialPressureLimitWindowMinRejectionReason );
+ arterialPressureLimitWindowMaxRejectionReason ( vData.mArterialPressureLimitWindowMaxRejectionReason );
+ arterialPressureLimitWindowDefRejectionReason ( vData.mArterialPressureLimitWindowDefRejectionReason );
+ venousPressureLimitWindowMinRejectionReason ( vData.mVenousPressureLimitWindowMinRejectionReason );
+ venousPressureLimitWindowMaxRejectionReason ( vData.mVenousPressureLimitWindowMaxRejectionReason );
+ venousPressureLimitWindowDefRejectionReason ( vData.mVenousPressureLimitWindowDefRejectionReason );
+ venousPressureLimitAsymtrcMinRejectionReason ( vData.mVenousPressureLimitAsymtrcMinRejectionReason );
+ venousPressureLimitAsymtrcMaxRejectionReason ( vData.mVenousPressureLimitAsymtrcMaxRejectionReason );
+ venousPressureLimitAsymtrcDefRejectionReason ( vData.mVenousPressureLimitAsymtrcDefRejectionReason );
+ trancembrncPressureLimitWindowMinRejectionReason ( vData.mTrancembrncPressureLimitWindowMinRejectionReason );
+ trancembrncPressureLimitWindowMaxRejectionReason ( vData.mTrancembrncPressureLimitWindowMaxRejectionReason );
+ trancembrncPressureLimitWindowDefRejectionReason ( vData.mTrancembrncPressureLimitWindowDefRejectionReason );
+ ultrafiltrationVolumeMinRejectionReason ( vData.mUltrafiltrationVolumeMinRejectionReason );
+ ultrafiltrationVolumeMaxRejectionReason ( vData.mUltrafiltrationVolumeMaxRejectionReason );
+ ultrafiltrationVolumeDefRejectionReason ( vData.mUltrafiltrationVolumeDefRejectionReason );
+ vitalsIntervalDefRejectionReason ( vData.mVitalsIntervalDefRejectionReason );
+ rinsebackVolumeMinRejectionReason ( vData.mRinsebackVolumeMinRejectionReason );
+ rinsebackVolumeMaxRejectionReason ( vData.mRinsebackVolumeMaxRejectionReason );
+ rinsebackVolumeDefRejectionReason ( vData.mRinsebackVolumeDefRejectionReason );
+ rinsebackFlowRateMinRejectionReason ( vData.mRinsebackFlowRateMinRejectionReason );
+ rinsebackFlowRateMaxRejectionReason ( vData.mRinsebackFlowRateMaxRejectionReason );
+ rinsebackFlowRateDefRejectionReason ( vData.mRinsebackFlowRateDefRejectionReason );
+ substitutionVolumeMinRejectionReason ( vData.mSubstitutionVolumeMinRejectionReason );
+ substitutionVolumeMaxRejectionReason ( vData.mSubstitutionVolumeMaxRejectionReason );
+ substitutionVolumeDefRejectionReason ( vData.mSubstitutionVolumeDefRejectionReason );
-
- QStringList values;
- values << QString("%1 - %2").arg(vData.mMinBloodFlowMLPM ).arg(vData.mMaxBloodFlowMLPM );
- values << QString("%1 - %2").arg(vData.mMinDialysateFlowMLPM ).arg(vData.mMaxDialysateFlowMLPM );
- values << QString("%1 - %2").arg(vData.mMinTxDurationMIN ).arg(vData.mMaxTxDurationMIN );
- values << QString("%1 - %2").arg(vData.mMinStopHepDispBeforeTxEndMIN ).arg(vData.mMaxStopHepDispBeforeTxEndMIN );
- values << QString("%1 - %2").arg(vData.mMinSalineBolVolumeML ).arg(vData.mMaxSalineBolVolumeML );
- values << QString("%1 - %2").arg(vData.mMinDialysateTempC ).arg(vData.mMaxDialysateTempC );
- values << QString("%1 - %2").arg(vData.mMinArtPressLimitWindowMMHG ).arg(vData.mMaxArtPressLimitWindowMMHG );
- values << QString("%1 - %2").arg(vData.mMinVenPressLimitWindowMMHG ).arg(vData.mMaxVenPressLimitWindowMMHG );
- values << QString("%1 - %2").arg(vData.mMinVenAsymPressLimitMMHG ).arg(vData.mMaxVenAsymPressLimitMMHG );
- values << QString("%1 - %2").arg(vData.mMinUltrafiltrationVolumeL ).arg(vData.mMaxUltrafiltrationVolumeL );
- values << QString("%1 - %2").arg(vData.mMinHepDispRateMLPM ).arg(vData.mMaxHepDispRateMLPM );
- values << QString("%1 - %2").arg(vData.mMinHepBolVolumeML ).arg(vData.mMaxHepBolVolumeML );
- values << QString("%1") .arg(vData.mEnableChemicalDisinfect ? tr("Enabled") : tr("Disabled") );
- parametersText(values);
-
// *** has to be the last to let the information to be set and then emit the signal ***
// *** otherwise will use the Previous values before being set. ***
adjustment ( true );
}
+
+/**
+ * \brief VAdjustmentInstitutionalRecord::doConfirm
+ * \details Validates the institutional records with FW
+ */
+void View::VAdjustmentInstitutionalRecord::doConfirm()
+{
+ AdjustInstitutionalRequestData institutionalRecordsRequest;
+ institutionalRecordsRequest.mBloodFlowMin = _bloodFlowRateMin ;
+ institutionalRecordsRequest.mBloodFlowMax = _bloodFlowRateMax ;
+ institutionalRecordsRequest.mBloodFlowDef = _bloodFlowRateDef ;
+ institutionalRecordsRequest.mDialysateFlowMin = _dialysateFlowRateMin ;
+ institutionalRecordsRequest.mDialysateFlowMax = _dialysateFlowRateMax ;
+ institutionalRecordsRequest.mDialysateFlowDef = _dialysateFlowRateDef ;
+ institutionalRecordsRequest.mTreatmentDurationMin = _treatmentDurationMin ;
+ institutionalRecordsRequest.mTreatmentDurationMax = _treatmentDurationMax ;
+ institutionalRecordsRequest.mTreatmentDurationDef = _treatmentDurationDef ;
+ institutionalRecordsRequest.mHepBolusVolumeMin = _heparinBolusVolumeMin ;
+ institutionalRecordsRequest.mHepBolusVolumeMax = _heparinBolusVolumeMax ;
+ institutionalRecordsRequest.mHepBolusVolumeDef = _heparinBolusVolumeDef ;
+ institutionalRecordsRequest.mHepDispRateMin = _heparinDispensingRateMin ;
+ institutionalRecordsRequest.mHepDispRateMax = _heparinDispensingRateMax ;
+ institutionalRecordsRequest.mHepDispRateDef = _heparinDispensingRateDef ;
+ institutionalRecordsRequest.mHepStopTimeMin = _heparinStopTimeMin ;
+ institutionalRecordsRequest.mHepStopTimeMax = _heparinStopTimeMax ;
+ institutionalRecordsRequest.mDialysateTempMin = _dialysateTempMin ;
+ institutionalRecordsRequest.mDialysateTempMax = _dialysateTempMax ;
+ institutionalRecordsRequest.mDialysateTempDef = _dialysateTempDef ;
+ institutionalRecordsRequest.mPotassiumMin = _acidConcentratePotassiumMin ;
+ institutionalRecordsRequest.mPotassiumMax = _acidConcentratePotassiumMax ;
+ institutionalRecordsRequest.mCalciumMin = _acidConcentrateCalciumMin ;
+ institutionalRecordsRequest.mCalciumMax = _acidConcentrateCalciumMax ;
+ institutionalRecordsRequest.mDialysateBicarbonateMin = _bicarbFinalDialysateCompositionMin ;
+ institutionalRecordsRequest.mDialysateBicarbonateMax = _bicarbFinalDialysateCompositionMax ;
+ institutionalRecordsRequest.mDialysateBicarbonateDef = _bicarbFinalDialysateCompositionDef ;
+ institutionalRecordsRequest.mDialysateSodiumMin = _sodiumFinalDialysateCompositionMin ;
+ institutionalRecordsRequest.mDialysateSodiumMax = _sodiumFinalDialysateCompositionMax ;
+ institutionalRecordsRequest.mDialysateSodiumDef = _sodiumFinalDialysateCompositionDef ;
+ institutionalRecordsRequest.mFluidBolusVolumeMin = _fluidBolusVolumeMin ;
+ institutionalRecordsRequest.mFluidBolusVolumeMax = _fluidBolusVolumeMax ;
+ institutionalRecordsRequest.mFluidBolusVolumeDef = _fluidBolusVolumeDef ;
+ institutionalRecordsRequest.mArterialWindowMin = _arterialPressureLimitWindowMin ;
+ institutionalRecordsRequest.mArterialWindowMax = _arterialPressureLimitWindowMax ;
+ institutionalRecordsRequest.mArterialWindowDef = _arterialPressureLimitWindowDef ;
+ institutionalRecordsRequest.mVenousWindowMin = _venousPressureLimitWindowMin ;
+ institutionalRecordsRequest.mVenousWindowMax = _venousPressureLimitWindowMax ;
+ institutionalRecordsRequest.mVenousWindowDef = _venousPressureLimitWindowDef ;
+ institutionalRecordsRequest.mVenousAsymmetricMin = _venousPressureLimitAsymtrcMin ;
+ institutionalRecordsRequest.mVenousAsymmetricMax = _venousPressureLimitAsymtrcMax ;
+ institutionalRecordsRequest.mVenousAsymmetricDef = _venousPressureLimitAsymtrcDef ;
+ institutionalRecordsRequest.mTMPWindowMin = _trancembrncPressureLimitWindowMin ;
+ institutionalRecordsRequest.mTMPWindowMax = _trancembrncPressureLimitWindowMax ;
+ institutionalRecordsRequest.mTMPWindowDef = _trancembrncPressureLimitWindowDef ;
+ institutionalRecordsRequest.mUltrafiltrationVolumeMin = _ultrafiltrationVolumeMin ;
+ institutionalRecordsRequest.mUltrafiltrationVolumeMax = _ultrafiltrationVolumeMax ;
+ institutionalRecordsRequest.mUltrafiltrationVolumeDef = _ultrafiltrationVolumeDef ;
+ institutionalRecordsRequest.mVitalsIntervalDef = _vitalsIntervalDef ;
+ institutionalRecordsRequest.mRinsebackVolumeMin = _rinsebackVolumeMin ;
+ institutionalRecordsRequest.mRinsebackVolumeMax = _rinsebackVolumeMax ;
+ institutionalRecordsRequest.mRinsebackVolumeDef = _rinsebackVolumeDef ;
+ institutionalRecordsRequest.mRinsebackFlowRateMin = _rinsebackFlowRateMin ;
+ institutionalRecordsRequest.mRinsebackFlowRateMax = _rinsebackFlowRateMax ;
+ institutionalRecordsRequest.mRinsebackFlowRateDef = _rinsebackFlowRateDef ;
+ institutionalRecordsRequest.mSubstitutionVolumeMin = _substitutionVolumeMin ;
+ institutionalRecordsRequest.mSubstitutionVolumeMax = _substitutionVolumeMax ;
+ institutionalRecordsRequest.mSubstitutionVolumeDef = _substitutionVolumeDef ;
+
+ emit didAdjustment(institutionalRecordsRequest);
+}
Index: sources/view/settings/VAdjustmentInstitutionalRecord.h
===================================================================
diff -u -ra58f91b077c8131bea3dbde0fc338adb113fc9f3 -re49c956894f999f6539b0c404dd1c9b18a76bb4b
--- sources/view/settings/VAdjustmentInstitutionalRecord.h (.../VAdjustmentInstitutionalRecord.h) (revision a58f91b077c8131bea3dbde0fc338adb113fc9f3)
+++ sources/view/settings/VAdjustmentInstitutionalRecord.h (.../VAdjustmentInstitutionalRecord.h) (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -21,7 +21,7 @@
// Project
#include "main.h" // Doxygen : do not remove
#include "VAdjustmentResponseBase.h"
-#include "MAdjustHDInstitutionalRecordResponse.h"
+#include "MAdjustTDInstitutionalRecordResponse.h"
namespace View {
@@ -38,85 +38,97 @@
// friends
friend class ::tst_views;
- const QStringList _titles {
- tr("Blood Flow Rate" ),
- tr("Dialysate Flow Rate" ),
- tr("Treatment Duration" ),
- tr("Heparin Stop" ),
- tr("Saline Bolus Volume" ),
- tr("Dialysate Temperature" ),
- tr("Arterial Pressure Limit" ),
- tr("Venous Pressure Limit" ),
- tr("Venous Asym Pressure Limit" ),
- tr("Prescribed UF Volume" ),
- tr("Heparin Dispense Rate" ),
- tr("Heparin Bolus Volume" ),
- tr("Chemical Disinfect" ),
- };
- const QStringList _units {
- tr("mL/min" ),
- tr("mL/min" ),
- tr("min" ),
- tr("min" ),
- tr("mL" ),
- tr("C" ),
- tr("mmHg" ),
- tr("mmHg" ),
- tr("mmHg" ),
- tr("L" ),
- tr("mL/hr" ),
- tr("mL" ),
- tr("" ),
- };
-
-
-
// The property adjustment_Triggered has to be always true
// and to always trigger the change event to work as a notifier for GUI
TRIGGER( bool , adjustment , 0)
- PROPERTY(quint32 , minBloodFlowMLPM , 0 )
- PROPERTY(quint32 , maxBloodFlowMLPM , 0 )
- PROPERTY(quint32 , minDialysateFlowMLPM , 0 )
- PROPERTY(quint32 , maxDialysateFlowMLPM , 0 )
- PROPERTY(quint32 , minTxDurationMIN , 0 )
- PROPERTY(quint32 , maxTxDurationMIN , 0 )
- PROPERTY(quint32 , minStopHepDispBeforeTxEndMIN , 0 )
- PROPERTY(quint32 , maxStopHepDispBeforeTxEndMIN , 0 )
- PROPERTY(quint32 , minSalineBolVolumeML , 0 )
- PROPERTY(quint32 , maxSalineBolVolumeML , 0 )
- PROPERTY(float , minDialysateTempC , 0.0 )
- PROPERTY(float , maxDialysateTempC , 0.0 )
- PROPERTY(qint32 , minArtPressLimitWindowMMHG , 0 )
- PROPERTY(qint32 , maxArtPressLimitWindowMMHG , 0 )
- PROPERTY(qint32 , minVenPressLimitWindowMMHG , 0 )
- PROPERTY(qint32 , maxVenPressLimitWindowMMHG , 0 )
- PROPERTY(qint32 , minVenAsymPressLimitMMHG , 0 )
- PROPERTY(qint32 , maxVenAsymPressLimitMMHG , 0 )
- PROPERTY(float , minUltrafiltrationVolumeL , 0.0 )
- PROPERTY(float , maxUltrafiltrationVolumeL , 0.0 )
- PROPERTY(float , minHepDispRateMLPM , 0.0 )
- PROPERTY(float , maxHepDispRateMLPM , 0.0 )
- PROPERTY(float , minHepBolVolumeML , 0.0 )
- PROPERTY(float , maxHepBolVolumeML , 0.0 )
- PROPERTY(bool , enableChemicalDisinfect , true )
+ RANGEVALUESET( quint32 , bloodFlowRate , 0)
+ RANGEVALUESET( quint32 , dialysateFlowRate , 0)
+ RANGEVALUESET( quint32 , treatmentDuration , 0)
+ RANGEVALUESET( float , heparinBolusVolume , 0)
+ RANGEVALUESET( float , heparinDispensingRate , 0)
+ RANGEVALUESET( quint32 , heparinStopTime , 0)
+ RANGEVALUESET( float , dialysateTemp , 0)
+ RANGEVALUESET( float , acidConcentratePotassium , 0)
+ RANGEVALUESET( float , acidConcentrateCalcium , 0)
+ RANGEVALUESET( quint32 , bicarbFinalDialysateComposition , 0)
+ RANGEVALUESET( quint32 , sodiumFinalDialysateComposition , 0)
+ RANGEVALUESET( quint32 , fluidBolusVolume , 0)
+ RANGEVALUESET( qint32 , arterialPressureLimitWindow , 0)
+ RANGEVALUESET( qint32 , venousPressureLimitWindow , 0)
+ RANGEVALUESET( qint32 , venousPressureLimitAsymtrc , 0)
+ RANGEVALUESET( qint32 , trancembrncPressureLimitWindow , 0)
+ RANGEVALUESET( float , ultrafiltrationVolume , 0)
+ RANGEVALUESET( qint32 , vitalsInterval , 0)
+ RANGEVALUESET( quint32 , rinsebackVolume , 0)
+ RANGEVALUESET( quint32 , rinsebackFlowRate , 0)
+ RANGEVALUESET( float , substitutionVolume , 0)
- PROPERTY(QStringList , parametersTitle , titles())
- PROPERTY(QStringList , parametersText , {} )
- PROPERTY(QStringList , parametersUnit , units ())
+ // rejection reasons
+ TRIGGER(quint32 , bloodFlowRateMinRejectionReason , 0)
+ TRIGGER(quint32 , bloodFlowRateMaxRejectionReason , 0)
+ TRIGGER(quint32 , bloodFlowRateDefRejectionReason , 0)
+ TRIGGER(quint32 , dialysateFlowRateMinRejectionReason , 0)
+ TRIGGER(quint32 , dialysateFlowRateMaxRejectionReason , 0)
+ TRIGGER(quint32 , dialysateFlowRateDefRejectionReason , 0)
+ TRIGGER(quint32 , treatmentDurationMinRejectionReason , 0)
+ TRIGGER(quint32 , treatmentDurationMaxRejectionReason , 0)
+ TRIGGER(quint32 , treatmentDurationDefRejectionReason , 0)
+ TRIGGER(quint32 , heparinBolusVolumeMinRejectionReason , 0)
+ TRIGGER(quint32 , heparinBolusVolumeMaxRejectionReason , 0)
+ TRIGGER(quint32 , heparinBolusVolumeDefRejectionReason , 0)
+ TRIGGER(quint32 , heparinDispensingRateMinRejectionReason , 0)
+ TRIGGER(quint32 , heparinDispensingRateMaxRejectionReason , 0)
+ TRIGGER(quint32 , heparinDispensingRateDefRejectionReason , 0)
+ TRIGGER(quint32 , heparinStopTimeMinRejectionReason , 0)
+ TRIGGER(quint32 , heparinStopTimeMaxRejectionReason , 0)
+ TRIGGER(quint32 , dialysateTempMinRejectionReason , 0)
+ TRIGGER(quint32 , dialysateTempMaxRejectionReason , 0)
+ TRIGGER(quint32 , dialysateTempDefRejectionReason , 0)
+ TRIGGER(quint32 , acidConcentratePotassiumMinRejectionReason , 0)
+ TRIGGER(quint32 , acidConcentratePotassiumMaxRejectionReason , 0)
+ TRIGGER(quint32 , acidConcentrateCalciumMinRejectionReason , 0)
+ TRIGGER(quint32 , acidConcentrateCalciumMaxRejectionReason , 0)
+ TRIGGER(quint32 , bicarbFinalDialysateCompositionMinRejectionReason , 0)
+ TRIGGER(quint32 , bicarbFinalDialysateCompositionMaxRejectionReason , 0)
+ TRIGGER(quint32 , bicarbFinalDialysateCompositionDefRejectionReason , 0)
+ TRIGGER(quint32 , sodiumFinalDialysateCompositionMinRejectionReason , 0)
+ TRIGGER(quint32 , sodiumFinalDialysateCompositionMaxRejectionReason , 0)
+ TRIGGER(quint32 , sodiumFinalDialysateCompositionDefRejectionReason , 0)
+ TRIGGER(quint32 , fluidBolusVolumeMinRejectionReason , 0)
+ TRIGGER(quint32 , fluidBolusVolumeMaxRejectionReason , 0)
+ TRIGGER(quint32 , fluidBolusVolumeDefRejectionReason , 0)
+ TRIGGER(quint32 , arterialPressureLimitWindowMinRejectionReason , 0)
+ TRIGGER(quint32 , arterialPressureLimitWindowMaxRejectionReason , 0)
+ TRIGGER(quint32 , arterialPressureLimitWindowDefRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitWindowMinRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitWindowMaxRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitWindowDefRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitAsymtrcMinRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitAsymtrcMaxRejectionReason , 0)
+ TRIGGER(quint32 , venousPressureLimitAsymtrcDefRejectionReason , 0)
+ TRIGGER(quint32 , trancembrncPressureLimitWindowMinRejectionReason , 0)
+ TRIGGER(quint32 , trancembrncPressureLimitWindowMaxRejectionReason , 0)
+ TRIGGER(quint32 , trancembrncPressureLimitWindowDefRejectionReason , 0)
+ TRIGGER(quint32 , ultrafiltrationVolumeMinRejectionReason , 0)
+ TRIGGER(quint32 , ultrafiltrationVolumeMaxRejectionReason , 0)
+ TRIGGER(quint32 , ultrafiltrationVolumeDefRejectionReason , 0)
+ TRIGGER(quint32 , vitalsIntervalDefRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackVolumeMinRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackVolumeMaxRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackVolumeDefRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackFlowRateMinRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackFlowRateMaxRejectionReason , 0)
+ TRIGGER(quint32 , rinsebackFlowRateDefRejectionReason , 0)
+ TRIGGER(quint32 , substitutionVolumeMinRejectionReason , 0)
+ TRIGGER(quint32 , substitutionVolumeMaxRejectionReason , 0)
+ TRIGGER(quint32 , substitutionVolumeDefRejectionReason , 0)
VIEW_DEC_CLASS_ADJUSTMENT(VAdjustmentInstitutionalRecord, AdjustInstitutionalRecordResponseData)
-private:
- QStringList titles() { return _titles; }
- QStringList units () { return _units ; }
-
public slots:
- void doAdjustment() {
- AdjustInstitutionalRequestData data;
- emit didAdjustment(data);
- }
+ void doConfirm ();
signals:
void didAdjustment(const AdjustInstitutionalRequestData &vData);
Index: sources/view/settings/VAdvancedInstitutionalRecord.cpp
===================================================================
diff -u
--- sources/view/settings/VAdvancedInstitutionalRecord.cpp (revision 0)
+++ sources/view/settings/VAdvancedInstitutionalRecord.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,60 @@
+/*!
+ *
+ * Copyright (c) 2024-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 VAdvancedInstitutionalRecord.cpp
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+#include "VAdvancedInstitutionalRecord.h"
+
+// Project
+#include "GuiController.h"
+#include "format.h"
+
+
+VIEW_DEF_CLASS_ADJUSTMENT(VAdvancedInstitutionalRecord)
+
+void View::VAdvancedInstitutionalRecord::initConnections()
+{
+ ADJUST_VIEW_CONNECTION(AdvancedInstitutionalRequestData)
+ ACTION_VIEW_CONNECTION(AdvancedInstitutionalRecordResponseData)
+}
+
+void View::VAdvancedInstitutionalRecord::onActionReceive(const AdvancedInstitutionalRecordResponseData &vData)
+{
+ adjustment_Accepted ( vData.mAccepted );
+ adjustment_Reason ( vData.mReason );
+ minRORejectionRatioAlarmMin ( vData.mMinRORejectionRatioAlarmMin );
+ minRORejectionRatioAlarmMax ( vData.mMinRORejectionRatioAlarmMax );
+ minRORejectionRatioAlarmDef ( vData.mMinRORejectionRatioAlarmDef );
+ disinfectionFrequencyMin ( vData.mDisinfectionFrequencyMin );
+ disinfectionFrequencyMax ( vData.mDisinfectionFrequencyMax );
+ disinfectionFrequencyDef ( vData.mDisinfectionFrequencyDef );
+ disinfectionParametersCycleTimeMin ( vData.mDisinfectionParametersCycleTimeMin );
+ disinfectionParametersCycleTimeMax ( vData.mDisinfectionParametersCycleTimeMax );
+ disinfectionParametersCycleTimeDef ( vData.mDisinfectionParametersCycleTimeDef );
+ maxBloodPumpStopTimeMin ( vData.mMaxBloodPumpStopTimeMin );
+ maxBloodPumpStopTimeMax ( vData.mMaxBloodPumpStopTimeMax );
+ maxBloodPumpStopTimeDef ( vData.mMaxBloodPumpStopTimeDef );
+ inletWaterCondLowThresholdMin ( vData.mInletWaterCondLowThresholdMin );
+ inletWaterCondLowThresholdMax ( vData.mInletWaterCondLowThresholdMax );
+ inletWaterCondLowThresholdDef ( vData.mInletWaterCondLowThresholdDef );
+ inletWaterCondHighThresholdMin ( vData.mInletWaterCondHighThresholdMin );
+ inletWaterCondHighThresholdMax ( vData.mInletWaterCondHighThresholdMax );
+ inletWaterCondHighThresholdDef ( vData.mInletWaterCondHighThresholdDef );
+ chlorineWaterSampleCheckMin ( vData.mChlorineWaterSampleCheckMin );
+ chlorineWaterSampleCheckMax ( vData.mChlorineWaterSampleCheckMax );
+ chlorineWaterSampleCheckDef ( vData.mChlorineWaterSampleCheckDef );
+ waterSampleTestResultRequiredDef ( vData.mWaterSampleTestResultRequiredDef );
+
+ // *** has to be the last to let the information to be set and then emit the signal ***
+ // *** otherwise will use the Previous values before being set. ***
+ adjustment ( true );
+}
Index: sources/view/settings/VAdvancedInstitutionalRecord.h
===================================================================
diff -u
--- sources/view/settings/VAdvancedInstitutionalRecord.h (revision 0)
+++ sources/view/settings/VAdvancedInstitutionalRecord.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,99 @@
+#pragma once
+
+/*!
+ *
+ * Copyright (c) 2024-2025 Diality Inc. - All Rights Reserved.
+ * \copyright
+ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
+ * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
+ *
+ * \file VAdvancedInstitutionalRecord.h
+ * \author (last) Nico Ramirez
+ * \date (last) 20-Nov-2025
+ * \author (original) Nico Ramirez
+ * \date (original) 20-Nov-2025
+ *
+ */
+
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "main.h" // Doxygen : do not remove
+#include "VAdjustmentResponseBase.h"
+#include "MTDAdvancedInstitutionalRecordResponse.h"
+
+namespace View {
+
+/*!
+ * \brief The VAdvancedInstitutionalRecord class
+ * \details View for Model's Data representation.
+ *
+ * \sa Model::VAdjustmentResponseBase
+ *
+ */
+class VAdvancedInstitutionalRecord : public VAdjustmentResponseBase {
+ Q_OBJECT
+
+ // friends
+ friend class ::tst_views;
+
+ const QStringList _titles {
+ tr("Minimum RO Rejection Ratio Alarm" ),
+ tr("Disinfection Frequency" ),
+ tr("Disinfection Parameters, Cycle Time"),
+ tr("Maximum Blood Pump Stop Time" ),
+ tr("Inlet Water Cond. Low Threshold" ),
+ tr("Inlet Water Cond. High Threshold" ),
+ tr("Chlorine Water Sample Check" ),
+ tr("Water Sample Test Result Required" ),
+ };
+
+ const QStringList _units {
+ tr("% reject" ), // Minimum RO Rejection Ratio Alarm
+ tr("days between cycles" ), // Disinfection Frequency
+ tr("Time" ), // Disinfection Parameters, Cycle Time
+ tr("min" ), // Maximum Blood Pump Stop Time
+ tr("uS/cm" ), // Inlet Water Cond. Low Threshold
+ tr("uS/cm" ), // Inlet Water Cond. High Threshold
+ tr("min" ), // Chlorine Water Sample Check
+ tr("" ), // Water Sample Test Result Required
+ };
+
+ // The property adjustment_Triggered has to be always true
+ // and to always trigger the change event to work as a notifier for GUI
+ TRIGGER( bool , adjustment , 0)
+
+ 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)
+ RANGESET( quint32 , waterSampleTestResultRequired , 0)
+
+ PROPERTY(QStringList , parametersTitle , titles())
+ PROPERTY(QStringList , parametersUnit , units ())
+
+ VIEW_DEC_CLASS_ADJUSTMENT(VAdvancedInstitutionalRecord, AdvancedInstitutionalRecordResponseData)
+
+private:
+ QStringList titles() { return _titles; }
+ QStringList units () { return _units ; }
+
+public slots:
+ void doAdjustment() {
+ AdvancedInstitutionalRequestData data;
+ emit didAdjustment(data);
+ }
+
+signals:
+ void didAdjustment(const AdvancedInstitutionalRequestData &vData);
+};
+}
+
+
+
Index: sources/view/settings/VInstitutionalRecord.cpp
===================================================================
diff -u
--- sources/view/settings/VInstitutionalRecord.cpp (revision 0)
+++ sources/view/settings/VInstitutionalRecord.cpp (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,96 @@
+/*!
+ *
+ * Copyright (c) 2024-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 VInstitutionalRecord.cpp
+ * \author (last) Dara Navaei
+ * \date (last) 26-Mar-2024
+ * \author (original) Dara Navaei
+ * \date (original) 28-Feb-2024
+ *
+ */
+#include "VInstitutionalRecord.h"
+
+// Project
+#include "GuiController.h"
+#include "format.h"
+
+
+VIEW_DEF_CLASS_ADJUSTMENT(VInstitutionalRecord)
+
+void View::VInstitutionalRecord::initConnections()
+{
+ ADJUST_VIEW_CONNECTION(InstitutionalRequestData)
+ ACTION_VIEW_CONNECTION(InstitutionalRecordResponseData)
+}
+
+void View::VInstitutionalRecord::onActionReceive(const InstitutionalRecordResponseData &vData)
+{
+ adjustment_Accepted ( vData.mAccepted );
+ adjustment_Reason ( vData.mReason );
+ 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 );
+ heparinStopTimeMax ( vData.mHepStopTimeMax );
+ dialysateTempMin ( vData.mDialysateTempMin );
+ dialysateTempMax ( vData.mDialysateTempMax );
+ dialysateTempDef ( vData.mDialysateTempDef );
+ acidConcentratePotassiumMin ( vData.mPotassiumMin );
+ acidConcentratePotassiumMax ( vData.mPotassiumMax );
+ acidConcentrateCalciumMin ( vData.mCalciumMin );
+ acidConcentrateCalciumMax ( vData.mCalciumMax );
+ bicarbFinalDialysateCompositionMin ( vData.mDialysateBicarbonateMin );
+ bicarbFinalDialysateCompositionMax ( vData.mDialysateBicarbonateMax );
+ bicarbFinalDialysateCompositionDef ( vData.mDialysateBicarbonateDef );
+ sodiumFinalDialysateCompositionMin ( vData.mDialysateSodiumMin );
+ sodiumFinalDialysateCompositionMax ( vData.mDialysateSodiumMax );
+ sodiumFinalDialysateCompositionDef ( vData.mDialysateSodiumDef );
+ fluidBolusVolumeMin ( vData.mFluidBolusVolumeMin );
+ fluidBolusVolumeMax ( vData.mFluidBolusVolumeMax );
+ fluidBolusVolumeDef ( vData.mFluidBolusVolumeDef );
+ arterialPressureLimitWindowMin ( vData.mArterialWindowMin );
+ arterialPressureLimitWindowMax ( vData.mArterialWindowMax );
+ arterialPressureLimitWindowDef ( vData.mArterialWindowDef );
+ venousPressureLimitWindowMin ( vData.mVenousWindowMin );
+ venousPressureLimitWindowMax ( vData.mVenousWindowMax );
+ venousPressureLimitWindowDef ( vData.mVenousWindowDef );
+ venousPressureLimitAsymtrcMin ( vData.mVenousAsymmetricMin );
+ venousPressureLimitAsymtrcMax ( vData.mVenousAsymmetricMax );
+ venousPressureLimitAsymtrcDef ( vData.mVenousAsymmetricDef );
+ trancembrncPressureLimitWindowMin ( vData.mTMPWindowMin );
+ trancembrncPressureLimitWindowMax ( vData.mTMPWindowMax );
+ trancembrncPressureLimitWindowDef ( vData.mTMPWindowDef );
+ ultrafiltrationVolumeMin ( vData.mUltrafiltrationVolumeMin );
+ ultrafiltrationVolumeMax ( vData.mUltrafiltrationVolumeMax );
+ ultrafiltrationVolumeDef ( vData.mUltrafiltrationVolumeDef );
+ vitalsIntervalDef ( vData.mVitalsIntervalDef );
+ rinsebackVolumeMin ( vData.mRinsebackVolumeMin );
+ rinsebackVolumeMax ( vData.mRinsebackVolumeMax );
+ rinsebackVolumeDef ( vData.mRinsebackVolumeDef );
+ rinsebackFlowRateMin ( vData.mRinsebackFlowRateMin );
+ rinsebackFlowRateMax ( vData.mRinsebackFlowRateMax );
+ rinsebackFlowRateDef ( vData.mRinsebackFlowRateDef );
+ substitutionVolumeMin ( vData.mSubstitutionVolumeMin );
+ substitutionVolumeMax ( vData.mSubstitutionVolumeMax );
+ substitutionVolumeDef ( vData.mSubstitutionVolumeDef );
+
+ // *** has to be the last to let the information to be set and then emit the signal ***
+ // *** otherwise will use the Previous values before being set. ***
+ adjustment ( true );
+}
Index: sources/view/settings/VInstitutionalRecord.h
===================================================================
diff -u
--- sources/view/settings/VInstitutionalRecord.h (revision 0)
+++ sources/view/settings/VInstitutionalRecord.h (revision e49c956894f999f6539b0c404dd1c9b18a76bb4b)
@@ -0,0 +1,139 @@
+/*!
+ *
+ * Copyright (c) 2024-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 VInstitutionalRecord.h
+ * \author (last) Behrouz NematiPour
+ * \date (last) 26-Mar-2024
+ * \author (original) Dara Navaei
+ * \date (original) 28-Feb-2024
+ *
+ */
+
+#pragma once
+
+// Qt
+#include
+
+// Project
+#include "main.h" // Doxygen : do not remove
+#include "VAdjustmentResponseBase.h"
+#include "MTDInstitutionalRecordResponse.h"
+
+namespace View {
+
+/*!
+ * \brief The VInstitutionalRecord class
+ * \details View for Model's Data representation.
+ *
+ * \sa Model::VAdjustmentResponseBase
+ *
+ */
+class VInstitutionalRecord : public VAdjustmentResponseBase {
+ Q_OBJECT
+
+ // friends
+ friend class ::tst_views;
+
+ const QStringList _titles {
+ tr("Blood Flow Rate" ),
+ tr("Dialysate Flow Rate" ),
+ tr("Treatment Duration" ),
+ tr("Heparin Bolus Volume" ),
+ tr("Heparin Dispense Rate" ),
+ tr("Heparin Stop Time" ),
+ tr("Dialysate Temperature" ),
+ tr("Acid Composition ([K+])" ),
+ tr("Acid Composition ([Ca2+])" ),
+ tr("Bicarb. Final Dialysate Composition"),
+ tr("Sodium Final Dialysate Composition" ),
+ tr("Fluid Bolus Volume" ),
+ tr("Arterial Pressure Limit" ),
+ tr("Venous Pressure Limit" ),
+ tr("Venous Asym Pressure Limit" ),
+ tr("TMP Window Limit" ),
+ tr("UF Volume" ),
+ tr("Vitals Interval" ),
+ tr("Rinseback Volume" ),
+ tr("Rinseback Flow Rate" ),
+ tr("Substitution Volume" ),
+ };
+
+ const QStringList _units {
+ tr("mL/min" ), // Blood Flow Rate
+ tr("mL/min" ), // Dialysate Flow Rate
+ tr("min" ), // Treatment Duration
+ tr("mL" ), // Heparin Bolus Volume
+ tr("mL/hr" ), // Heparin Dispense Rate
+ tr("min" ), // Heparin Stop Time
+ tr("°C" ), // Dialysate Temperature
+ tr("mEq/L" ), // Acid Composition ([K+])
+ tr("mEq/L" ), // Acid Composition ([Ca2+])
+ tr("mEq/L" ), // Bicarb. Final Dialysate Composition"
+ tr("mEq/L" ), // Sodium Final Dialysate Composition
+ tr("mL" ), // Fluid Bolus Volume
+ tr("mmHg" ), // Arterial Pressure Limit
+ tr("mmHg" ), // Venous Pressure Limit
+ tr("mmHg" ), // Venous Asym Pressure Limit
+ tr("mmHg" ), // TMP Window Limit
+ tr("L" ), // UF Volume
+ tr("min" ), // Vitals Interval
+ tr("mL" ), // Rinseback Volume
+ tr("mL/min" ), // Rinseback Flow Rate
+ tr("L" ), // Substitution Volume
+ };
+
+ // The property adjustment_Triggered has to be always true
+ // and to always trigger the change event to work as a notifier for GUI
+ TRIGGER( bool , adjustment , 0)
+
+ RANGESET( quint32 , bloodFlowRate , 0)
+ RANGESET( quint32 , dialysateFlowRate , 0)
+ RANGESET( quint32 , treatmentDuration , 0)
+ RANGESET( float , heparinBolusVolume , 0)
+ RANGESET( float , heparinDispensingRate , 0)
+ RANGESET( quint32 , heparinStopTime , 0)
+ RANGESET( float , dialysateTemp , 0)
+ RANGESET( float , acidConcentratePotassium , 0)
+ RANGESET( float , acidConcentrateCalcium , 0)
+ RANGESET( quint32 , bicarbFinalDialysateComposition , 0)
+ RANGESET( quint32 , sodiumFinalDialysateComposition , 0)
+ RANGESET( quint32 , fluidBolusVolume , 0)
+ RANGESET( qint32 , arterialPressureLimitWindow , 0)
+ RANGESET( qint32 , venousPressureLimitWindow , 0)
+ RANGESET( qint32 , venousPressureLimitAsymtrc , 0)
+ RANGESET( qint32 , trancembrncPressureLimitWindow , 0)
+ RANGESET( float , ultrafiltrationVolume , 0)
+ RANGESET( qint32 , vitalsInterval , 0)
+ RANGESET( quint32 , rinsebackVolume , 0)
+ RANGESET( quint32 , rinsebackFlowRate , 0)
+ RANGESET( float , substitutionVolume , 0)
+
+ // TODO: enhancement
+ READONLY( QStringList , treatmentModalityOptions ,{})
+ READONLY( QStringList , hdfTreatmentModeOptions ,{})
+ READONLY( QStringList , dryBicabCartridgeSizeOptions ,{})
+ READONLY( QStringList , dialyzerTypeOptions ,{})
+
+ PROPERTY(QStringList , parametersTitle , titles())
+ PROPERTY(QStringList , parametersUnit , units ())
+
+ VIEW_DEC_CLASS_ADJUSTMENT(VInstitutionalRecord, InstitutionalRecordResponseData)
+
+private:
+ QStringList titles() { return _titles; }
+ QStringList units () { return _units ; }
+
+public slots:
+ void doAdjustment() {
+ InstitutionalRequestData data;
+ emit didAdjustment(data);
+ }
+
+signals:
+ void didAdjustment(const InstitutionalRequestData &vData);
+};
+}