Index: firmware/App/Services/NVRecordsDD.c =================================================================== diff -u -r1fa38184526c2b0c072eb8745c653f772156a824 -rf96e4e38cf20e59fc45ee8872cd480453b573608 --- firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision 1fa38184526c2b0c072eb8745c653f772156a824) +++ firmware/App/Services/NVRecordsDD.c (.../NVRecordsDD.c) (revision f96e4e38cf20e59fc45ee8872cd480453b573608) @@ -53,9 +53,22 @@ #define DEFAULT_UF_VOLUME_ML 700 ///< Ultrafilter volume in milliliters. #define DEFAULT_BLOOD_LEAK_SET_POINT 20 ///< Blood leak default set point. +// Default Values for Institutional Records +#define DEFAULT_MIN_DIALYSATE_FLOW_MLPM 50 ///< Default value of min dialysate flow in mL/min +#define DEFAULT_MAX_DIALYSATE_FLOW_MLPM 600 ///< Default value of max dialysate flow in mL/min +#define DEFAULT_MIN_DIALYSATE_TEMP_C 35.0F ///< Default value of min dialysate temp in °C +#define DEFAULT_MAX_DIALYSATE_TEMP_C 38.0F ///< Default value of max dialysate temp in °C +#define DEFAULT_MIN_ACID_CONCENTRATE 0 ///< Default value of min acid concentrate +#define DEFAULT_MAX_ACID_CONCENTRATE 2 ///< Default value of max acid concentrate +#define DEFAULT_MIN_BICARB_CARTRIDGE_SIZE_G 0 ///< Default value of min bicarb cartridge size in grams +#define DEFAULT_MAX_BICARB_CARTRIDGE_SIZE_G 5 ///< Default value of max bicarb cartridge size in grams +#define DEFAULT_MIN_SODIUM_MEQL 130 ///< Default value of min sodium in mEq/L +#define DEFAULT_MAX_SODIUM_MEQL 155 ///< Default value of max sodium in mEq/L +#define DEFAULT_MIN_BICARBONATE_MEQL 20 ///< Default value of min bicarbonate in mEq/L +#define DEFAULT_MAX_BICARBONATE_MEQL 40 ///< Default value of max bicarbonate in mEq/L +#define DEFAULT_MAX_RO_REJECTION_RATIO_PCT 90 ///< Max RO rejection ratio in percent. #define DEFAULT_NUM_OF_DISINFECTION_FREQUENCY 3 ///< Number of Days between each disinfection cycle #define DEFAULT_NUM_OF_DISINFECTION_CYCLE_TIME 30 ///< Time period of which disinfection is done -#define DEFAULT_MAX_RO_REJECTION_RATIO_PCT 90 ///< Max RO rejection ratio in percent. #define DEFAULT_MIN_INLET_WATER_COND_ALARM_US_P_CM 200.0F ///< Min inlet water conductivity alarm limit in uS/cm. #define DEFAULT_MAX_INLET_WATER_COND_ALARM_US_P_CM 50.0F ///< Max inlet water conductivity alarm limit in uS/cm. #define DEFAULT_ACID_CONCENTRATE_JUG_SIZE 3.43F ///< Acid Concentrate jug size in litres @@ -525,22 +538,21 @@ if ( calcCRC != recordCRC ) { // CRC did not pass so set all values to default -// ddInstitutionalGroup.ddInstitutionalRecord.minDialysateFlowMLPM = getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_DIALYSATE_FLOW ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxDialysateFlowMLPM = getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_DIALYSATE_FLOW ); -// ddInstitutionalGroup.ddInstitutionalRecord.minDialysateTempC = getF32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxDialysateTempC = getF32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); -// ddInstitutionalGroup.ddInstitutionalRecord.minAcidConcentrate = getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_ACID_CONCENTRATE ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxAcidConcentrate = getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_ACID_CONCENTRATE ); -// ddInstitutionalGroup.ddInstitutionalRecord.minBicarbCartridgeSizeG = getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_DRY_BICARB_CART_SIZE ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxBicarbCartridgeSizeG = getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_DRY_BICARB_CART_SIZE ); -// ddInstitutionalGroup.ddInstitutionalRecord.minSodiumMEQL = getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_SODIUM ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxSodiumMEQL = getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_SODIUM ); -// ddInstitutionalGroup.ddInstitutionalRecord.minBicarbonateMEQL = getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_BICARBONATE ); -// ddInstitutionalGroup.ddInstitutionalRecord.maxBicarbonateMEQL = getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_BICARBONATE ); - - ddInstitutionalGroup.ddInstitutionalRecord.minRORejectionRatioPCT = DEFAULT_MAX_RO_REJECTION_RATIO_PCT; - ddInstitutionalGroup.ddInstitutionalRecord.disinfectionFrequency = DEFAULT_NUM_OF_DISINFECTION_FREQUENCY; - ddInstitutionalGroup.ddInstitutionalRecord.disinfectionCycleTime = DEFAULT_NUM_OF_DISINFECTION_CYCLE_TIME; + ddInstitutionalGroup.ddInstitutionalRecord.minDialysateFlowMLPM = DEFAULT_MIN_DIALYSATE_FLOW_MLPM; + ddInstitutionalGroup.ddInstitutionalRecord.maxDialysateFlowMLPM = DEFAULT_MAX_DIALYSATE_FLOW_MLPM; + ddInstitutionalGroup.ddInstitutionalRecord.minDialysateTempC = DEFAULT_MIN_DIALYSATE_TEMP_C; + ddInstitutionalGroup.ddInstitutionalRecord.maxDialysateTempC = DEFAULT_MAX_DIALYSATE_TEMP_C; + ddInstitutionalGroup.ddInstitutionalRecord.minAcidConcentrate = DEFAULT_MIN_ACID_CONCENTRATE; + ddInstitutionalGroup.ddInstitutionalRecord.maxAcidConcentrate = DEFAULT_MAX_ACID_CONCENTRATE; + ddInstitutionalGroup.ddInstitutionalRecord.minBicarbCartridgeSizeG = DEFAULT_MIN_BICARB_CARTRIDGE_SIZE_G; + ddInstitutionalGroup.ddInstitutionalRecord.maxBicarbCartridgeSizeG = DEFAULT_MAX_BICARB_CARTRIDGE_SIZE_G; + ddInstitutionalGroup.ddInstitutionalRecord.minSodiumMEQL = DEFAULT_MIN_SODIUM_MEQL; + ddInstitutionalGroup.ddInstitutionalRecord.maxSodiumMEQL = DEFAULT_MAX_SODIUM_MEQL; + ddInstitutionalGroup.ddInstitutionalRecord.minBicarbonateMEQL = DEFAULT_MIN_BICARBONATE_MEQL; + ddInstitutionalGroup.ddInstitutionalRecord.maxBicarbonateMEQL = DEFAULT_MAX_BICARBONATE_MEQL; + ddInstitutionalGroup.ddInstitutionalRecord.minRORejectionRatioPCT = DEFAULT_MAX_RO_REJECTION_RATIO_PCT; + ddInstitutionalGroup.ddInstitutionalRecord.disinfectionFrequency = DEFAULT_NUM_OF_DISINFECTION_FREQUENCY; + ddInstitutionalGroup.ddInstitutionalRecord.disinfectionCycleTime = DEFAULT_NUM_OF_DISINFECTION_CYCLE_TIME; ddInstitutionalGroup.ddInstitutionalRecord.minInletWaterCondAlarmLimitUSPCM = DEFAULT_MIN_INLET_WATER_COND_ALARM_US_P_CM; ddInstitutionalGroup.ddInstitutionalRecord.maxInletWaterCondAlarmLimitUSPCM = DEFAULT_MAX_INLET_WATER_COND_ALARM_US_P_CM; ddInstitutionalGroup.ddInstitutionalRecord.acidConcentrateJugSizeL = DEFAULT_ACID_CONCENTRATE_JUG_SIZE; @@ -582,9 +594,12 @@ if ( calcCRC != recordCRC ) { - ddUsageInfoGroup.ddUsageInfo.lastHeatDisCompleteDateEpoch = 0; - ddUsageInfoGroup.ddUsageInfo.roWaterGenSinceLastServiceL = 0.0F; - ddUsageInfoGroup.ddUsageInfo.roWaterGenTotalL = 0.0F; + ddUsageInfoGroup.ddUsageInfo.roWaterGenTotalL = 0.0F; + ddUsageInfoGroup.ddUsageInfo.roWaterGenSinceLastServiceL = 0.0F; + ddUsageInfoGroup.ddUsageInfo.lastBasicFlushCompleteDateEpoch = 0; + ddUsageInfoGroup.ddUsageInfo.lastHeatDisCompleteDateEpoch = 0; + ddUsageInfoGroup.ddUsageInfo.lastHeatActiveCoolCompleteDateEpoch = 0; + ddUsageInfoGroup.ddUsageInfo.lastFilterFlushCompleteDateEpoch = 0; // ddUsageInfoGroup.ddUsageInfo.lastResetTimeEpoch = getRTCTimestamp(); ddUsageInfoGroup.ddUsageInfo.crc = crc16( (U08*)&ddUsageInfoGroup.ddUsageInfo, sizeof( DD_USAGE_INFO_RECORD_T ) - sizeof( U16 ) ); ddUsageInfoGroup.crc = crc16( (U08*)&ddUsageInfoGroup, sizeof( DD_USAGE_INFO_GROUP_T ) - sizeof( U16 ) );