/*! * * Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file VTreatmentRanges.cpp * \author (last) Behrouz NematiPour * \date (last) 06-Aug-2023 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * */ #include "VTreatmentRanges.h" #include "VTreatmentCreate.h" // Project #include "ApplicationController.h" #include "GuiController.h" #include "StorageGlobals.h" VIEW_DEF_CLASS(VTreatmentRanges) void VTreatmentRanges::initConnections() { ACTION_VIEW_CONNECTION(TreatmentRangesData); ACTION_VIEW_CONNECTION(SettingsData); // since we do not have access to this object because it is created in QML. // Connection to the GuiController made here // It should be defined in the class which wants to connect to signal. // VTreatmentRanges -> GUIController -> ApplicationController to handle connect(this , SIGNAL(didTreatmentRangesDone(bool)), &_GuiController, SLOT( doTreatmentRangesDone(bool))); } void View::VTreatmentRanges::onActionReceive(const TreatmentRangesData &vData) { treatmentRanges_Duration_Min ( vData.mDuration_Min ); treatmentRanges_Duration_Max ( vData.mDuration_Max ); treatmentRanges_Ultrafiltration_Volume_Min ( vData.mUltrafiltration_Volume_Min / 1000 ); // mL => L treatmentRanges_Ultrafiltration_Volume_Max ( vData.mUltrafiltration_Volume_Max / 1000 ); // mL => L quint32 mDialysateFlowRateRes = dialysateFlowRateRes(); treatmentRanges_Dialysate_Flow_Min ( vData.mDialysate_Flow_Min - ( mDialysateFlowRateRes ? vData.mDialysate_Flow_Min % mDialysateFlowRateRes : 0 ) ); treatmentRanges_Dialysate_Flow_Max ( vData.mDialysate_Flow_Max - ( mDialysateFlowRateRes ? vData.mDialysate_Flow_Min % mDialysateFlowRateRes : 0 ) ); } /** * \brief VTreatmentRanges::doSaveAcidConcentrate * \param vOption - QString new option to save to config file * \details Save Acid Concentrate entered by user to config */ void View::VTreatmentRanges::doSaveAcidConcentrate (const QString &vOption) { // check if unique if ( _acidConcentrateOptions.contains(vOption) ) { acidConcentrateAccepted(false); return; } if ( ! _acidConcentrate.isEmpty() ) { _acidConcentrateOptions.removeOne(_acidConcentrate); } _acidConcentrateOptions.append(vOption); acidConcentrate(vOption); // update emit acidConcentrateOptionsChanged(_acidConcentrateOptions); acidConcentrateAccepted(true); } /** * \brief VTreatmentRanges::doClearAcidConcentrate * \param vSet - Bool to only clear options list if combobox is active * \details Clear any custum Acid Concentrate entered by user */ void View::VTreatmentRanges::doClearAcidConcentrate (const bool vSet) { if ( ! vSet ) { return; } if ( ! _acidConcentrate.isEmpty() ) { _acidConcentrateOptions.removeOne(_acidConcentrate); } acidConcentrate(""); // update emit acidConcentrateOptionsChanged(_acidConcentrateOptions); } /** * \brief VTreatmentRanges::doPopulateAcidConcentrate * \details Check Acid Concentrate selection when popup is displayed and update notifcation */ void View::VTreatmentRanges::doPopulateAcidConcentrate (const int &vSet, const int &vIndex) { enum AcidConcentrates { ePotassium , eCalcium , eMagnesium , }; if ( ! vSet ) { return; } QString mAcidConcentrate =_acidConcentrateOptions[vIndex]; QStringList values = mAcidConcentrate.split(QRegExp("[^0-9.]"), Qt::SkipEmptyParts); potassium (values.value(AcidConcentrates::ePotassium) .toFloat()); calcium (values.value(AcidConcentrates::eCalcium) .toFloat()); didPopulateAcidConcentrate(); } /*! * \brief VTreatmentCreate::onSettingsDone * \details fills the items below, read from the settings file, when the reading is notified done by ApplicationController. * acidConcentrateOptions * bicarbonateConcentrateOptions * dialyzerTypeOptions * heparinTypeOptions * */ void View::VTreatmentRanges::onActionReceive(const SettingsData &) { QString mCategory = Storage::Settings_Category_DataList; bool isConfigsOk = true; // assume configurations are valid FROMVARIANT_WITHRETURN ( bloodFlowRateDef , "Blood Flow Rate Ranges" , "Blood_Flow_Rate_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( bloodFlowRateMin , "Blood Flow Rate Ranges" , "Blood_Flow_Rate_Min" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( bloodFlowRateMax , "Blood Flow Rate Ranges" , "Blood_Flow_Rate_Max" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( bloodFlowRateRes , "Blood Flow Rate Ranges" , "Blood_Flow_Rate_Res" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateFlowRateDef , "Dialysate Flow Rate Ranges" , "Dialysate_Flow_Rate_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateFlowRateMin , "Dialysate Flow Rate Ranges" , "Dialysate_Flow_Rate_Min" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateFlowRateMax , "Dialysate Flow Rate Ranges" , "Dialysate_Flow_Rate_Max" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateFlowRateRes , "Dialysate Flow Rate Ranges" , "Dialysate_Flow_Rate_Res" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( treatmentDurationDef , "Treatment Duration Ranges" , "Treatment_Duration_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( treatmentDurationMin , "Treatment Duration Ranges" , "Treatment_Duration_Min" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( treatmentDurationMax , "Treatment Duration Ranges" , "Treatment_Duration_Max" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( treatmentDurationRes , "Treatment Duration Ranges" , "Treatment_Duration_Res" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinDispensingRateDef , "Heparin Dispensing Rate Ranges" , "Heparin_Dispensing_Rate_Def" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinDispensingRateMin , "Heparin Dispensing Rate Ranges" , "Heparin_Dispensing_Rate_Min" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinDispensingRateMax , "Heparin Dispensing Rate Ranges" , "Heparin_Dispensing_Rate_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinDispensingRateRes , "Heparin Dispensing Rate Ranges" , "Heparin_Dispensing_Rate_Res" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinBolusVolumeDef , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Def" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinBolusVolumeMin , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Min" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinBolusVolumeMax , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( heparinBolusVolumeRes , "Heparin Bolus Volume Ranges" , "Heparin_Bolus_Volume_Res" , Float , isConfigsOk ); // heparinStopTime: Def, Max, Res intentionally omitted (see config/configurations/Parameters/DataList.conf) FROMVARIANT_WITHRETURN ( heparinStopTimeMin , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Min" , UInt , isConfigsOk ); // These were removed to ensure the check on the Heparin stop time matches the Treatment Duration. // FROMVARIANT_WITHRETURN ( heparinStopTimeMax , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Max" , UInt , isConfigsOk ); // FROMVARIANT_WITHRETURN ( heparinStopTimeRes , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Res" , UInt , isConfigsOk ); // FROMVARIANT_WITHRETURN ( heparinStopTimeDef , "Heparin Stop Time Ranges" , "Heparin_Stop_Time_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentratePotassiumDef , "Acid Concentrate Ranges" , "Acid_Concentrate_Potassium_Def" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentratePotassiumMin , "Acid Concentrate Ranges" , "Acid_Concentrate_Potassium_Min" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentratePotassiumMax , "Acid Concentrate Ranges" , "Acid_Concentrate_Potassium_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentratePotassiumRes , "Acid Concentrate Ranges" , "Acid_Concentrate_Potassium_Res" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentrateCalciumDef , "Acid Concentrate Ranges" , "Acid_Concentrate_Calcium_Def" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( acidConcentrateCalciumMin , "Acid Concentrate Ranges" , "Acid_Concentrate_Calcium_Min" , Float , isConfigsOk ); 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 ); FROMVARIANT_WITHRETURN ( salineBolusVolumeRes , "Saline Bolus Volume Ranges" , "Saline_Bolus_Volume_Res" , UInt , isConfigsOk ); heparinTypeOptions ( _Settings.keys(mCategory , "Heparin Type Options" )); acidConcentrateOptions ( _Settings.keys(mCategory , "Acid Concentrate Options" )); 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(); 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 ); FROMVARIANT_WITHRETURN ( dialysateTempMax , "Dialysate Temperature" , "Dialysate_Temperature_Max" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( dialysateTempRes , "Dialysate Temperature" , "Dialysate_Temperature_Res" , Float , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowDef , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Def" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowMin , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowMax , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureLimitWindowRes , "Trancememberance Pressure Ranges" , "Trancememberance_Adjust_Window_Res" , Int , isConfigsOk ); // trancembrncPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf) FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorMin , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorMax , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( trancembrncPressureMonitorRes , "Trancememberance Pressure Ranges" , "Trancememberance_Monitor_Res" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowDef , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Def" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowMin , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowMax , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureLimitWindowRes , "Arterial Blood Pressure Ranges" , "Arterial_Adjust_Window_Res" , Int , isConfigsOk ); // arterialPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf) FROMVARIANT_WITHRETURN ( arterialPressureMonitorMin , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureMonitorMax , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( arterialPressureMonitorRes , "Arterial Blood Pressure Ranges" , "Arterial_Monitor_Res" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitWindowDef , "Venous Blood Pressure Ranges" , "Venous_Adjust_Window_Def" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitWindowMin , "Venous Blood Pressure Ranges" , "Venous_Adjust_Window_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitWindowMax , "Venous Blood Pressure Ranges" , "Venous_Adjust_Window_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitWindowRes , "Venous Blood Pressure Ranges" , "Venous_Adjust_Window_Res" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcDef , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Def" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcMin , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcMax , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureLimitAsymtrcRes , "Venous Blood Pressure Ranges" , "Venous_Adjust_Asymmetric_Res" , Int , isConfigsOk ); // venousPressureMonitor: Def intentionally omitted (see config/configurations/Parameters/DataList.conf) FROMVARIANT_WITHRETURN ( venousPressureMonitorMin , "Venous Blood Pressure Ranges" , "Venous_Monitor_Min" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureMonitorMax , "Venous Blood Pressure Ranges" , "Venous_Monitor_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( venousPressureMonitorRes , "Venous Blood Pressure Ranges" , "Venous_Monitor_Res" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( rinsebackFlowRateDef , "Rinseback Flow Rate Ranges" , "Rinseback_Flow_Rate_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( rinsebackFlowRateMin , "Rinseback Flow Rate Ranges" , "Rinseback_Flow_Rate_Min" , UInt , isConfigsOk ); 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 ( 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 ); 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 ); }