Index: firmware/App/Services/TxParams.c =================================================================== diff -u -rb564503baa3723268fce41b8efdd091105aac423 -r9d64424aaae361758fd38ab44cc395a53838ed37 --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision b564503baa3723268fce41b8efdd091105aac423) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision 9d64424aaae361758fd38ab44cc395a53838ed37) @@ -139,11 +139,11 @@ static const TREATMENT_PARAMS_PROPERTIES_T SYS_CONFIG_TREAT_PARAMS_PROPERTIES[ NUM_OF_SYS_CONFIG_TREATMENT_PARAMS ] = { // type min max default - { CRITICAL_DATA_TYPE_U32, {.uInt=120}, {.uInt=200}, {.uInt=120} }, // TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=200}, {.uInt=100} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=35}, {.uInt=20} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC - { CRITICAL_DATA_TYPE_U32, {.uInt=40}, {.uInt=100}, {.uInt=40} }, // TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW - { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=500}, {.uInt=200} }, // TREATMENT_PARAM_RINSEBACK_FLOW_RATE + { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=100}, {.uInt=50} }, // TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW + { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=100}, {.uInt=50} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW + { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=35}, {.uInt=35} }, // TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC + { CRITICAL_DATA_TYPE_U32, {.uInt=20}, {.uInt=50}, {.uInt=20} }, // TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW + { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=500}, {.uInt=200} }, // TREATMENT_PARAM_RINSEBACK_FLOW_RATEs { CRITICAL_DATA_TYPE_U32, {.uInt=300}, {.uInt=1000}, {.uInt=300} }, // TREATMENT_PARAM_PRIME_DISCARD_VOLUME { CRITICAL_DATA_TYPE_U32, {.uInt=70}, {.uInt=140}, {.uInt=90} }, // TREATMENT_PARAM_SYSTOLIC_BP_LOW_ALARM_LIMIT { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=260}, {.uInt=200} }, // TREATMENT_PARAM_SYSTOLIC_BP_HIGH_ALARM_LIMIT @@ -207,12 +207,8 @@ static BOOL isVenousPressureLimitWindowValid( U32 value ); static BOOL isVenousAsymmetricPressureLimitWindowValid( U32 value ); static BOOL isTmpPressureLimitWindowValid( U32 value ); -static BOOL isVitalsAlarmLimitValueValid( U32 value, U32 minValue, U32 maxValue ); -static BOOL isSystolicBpLowAlarmLimitValid( U32 value ); -static BOOL isSystolicBpHighAlarmLimitValid( U32 value ); -static BOOL isHeartRateLowAlarmLimitValid( U32 value ); -static BOOL isHeartRateHighAlarmLimitValid( U32 value ); -static BOOL isVitalsMeasurementIntervalValid( U32 value ); +static BOOL isVitalsAlarmLimitValueValid(U32 value, SYS_CONFIG_TREATMENT_PARAM_T param ); +static BOOL isVitalsMeasurementIntervalValid( U32 value, TREATMENT_PARAM_T param ); //static void getInstitutionalRecordEdgeValue( TREATMENT_PARAM_T param, CRITICAL_DATAS_T* value, BOOL isMin ); @@ -1645,7 +1641,7 @@ * @brief * The vitalsAdjustmentHandleChangeRequest function handles the UI vitals * settings change request during Treatment mode. - * @details \b Message \b Sent: MSG_ID_TD_VITALS_ALARM_LIMITS_CHANGE_RESPONSE + * @details \b Message \b Sent: MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE * including acceptance status and per-parameter rejection reasons. * @details \b Inputs: none. * @details \b Outputs: none. @@ -1670,27 +1666,32 @@ response.heartRateHighAlarmLimitRejectionReason = REQUEST_REJECT_REASON_NONE; response.vitalsMeasurementIntervalRejectionReason = REQUEST_REJECT_REASON_NONE; - if ( FALSE == isSystolicBpLowAlarmLimitValid( request.systolicBpLowAlarmLimit ) ) + if ( FALSE == isVitalsAlarmLimitValueValid( request.systolicBpLowAlarmLimit, + TREATMENT_PARAM_SYSTOLIC_BP_LOW_ALARM_LIMIT ) ) { response.systolicBpLowAlarmLimitRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isSystolicBpHighAlarmLimitValid( request.systolicBpHighAlarmLimit ) ) + if ( FALSE == isVitalsAlarmLimitValueValid( request.systolicBpHighAlarmLimit, + TREATMENT_PARAM_SYSTOLIC_BP_HIGH_ALARM_LIMIT ) ) { response.systolicBpHighAlarmLimitRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isHeartRateLowAlarmLimitValid( request.heartRateLowAlarmLimit ) ) + if ( FALSE == isVitalsAlarmLimitValueValid( request.heartRateLowAlarmLimit, + TREATMENT_PARAM_HEART_RATE_LOW_ALARM_LIMIT ) ) { response.heartRateLowAlarmLimitRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isHeartRateHighAlarmLimitValid( request.heartRateHighAlarmLimit ) ) + if ( FALSE == isVitalsAlarmLimitValueValid( request.heartRateHighAlarmLimit, + TREATMENT_PARAM_HEART_RATE_HIGH_ALARM_LIMIT ) ) { response.heartRateHighAlarmLimitRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } - if ( FALSE == isVitalsMeasurementIntervalValid( request.vitalsMeasurementInterval_min ) ) + if ( FALSE == isVitalsMeasurementIntervalValid( request.vitalsMeasurementInterval_min, + TREATMENT_PARAM_BP_MEAS_INTERVAL ) ) { response.vitalsMeasurementIntervalRejectionReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; } @@ -1729,124 +1730,39 @@ /*********************************************************************//** * @brief * The isVitalsAlarmLimitValueValid function validates a vitals alarm - * limit value against the specified range. + * limit value against the configured range for the specified parameter. * @details \b Inputs: none. * @details \b Outputs: none. * @param value vitals alarm limit value to validate. - * @param minValue minimum allowable vitals alarm limit value. - * @param maxValue maximum allowable vitals alarm limit value. + * @param param vitals alarm limit treatment parameter. * @return TRUE if value is valid, FALSE otherwise. *************************************************************************/ -static BOOL isVitalsAlarmLimitValueValid( U32 value, U32 minValue, U32 maxValue ) +static BOOL isVitalsAlarmLimitValueValid( U32 value, SYS_CONFIG_TREATMENT_PARAM_T param ) { BOOL limitValid; - limitValid = ( ( value >= minValue ) && ( value <= maxValue ) ) ? TRUE : FALSE; + limitValid = ( ( value >= getU32SysConfigTreatmentParamLowerRangeLimit( param ) ) && + ( value <= getU32SysConfigTreatmentParamUpperRangeLimit( param ) ) ) ? TRUE : FALSE; return limitValid; } /*********************************************************************//** * @brief - * The isSystolicBpLowAlarmLimitValid function validates the systolic BP - * low alarm limit value. - * @details \b Inputs: none. - * @details \b Outputs: none. - * @param value systolic BP low alarm limit value (mmHg). - * @return TRUE if the value is within valid range, FALSE otherwise. - *************************************************************************/ -static BOOL isSystolicBpLowAlarmLimitValid( U32 value ) -{ - BOOL limitValid; - - limitValid = isVitalsAlarmLimitValueValid( - value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_SYSTOLIC_BP_LOW_ALARM_LIMIT ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_SYSTOLIC_BP_LOW_ALARM_LIMIT ) ); - - return limitValid; -} - -/*********************************************************************//** - * @brief - * The isSystolicBpHighAlarmLimitValid function validates the systolic BP - * high alarm limit value. - * @details \b Inputs: none. - * @details \b Outputs: none. - * @param value systolic BP high alarm limit value (mmHg). - * @return TRUE if the value is within valid range, FALSE otherwise. - *************************************************************************/ -static BOOL isSystolicBpHighAlarmLimitValid( U32 value ) -{ - BOOL limitValid; - - limitValid = isVitalsAlarmLimitValueValid( - value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_SYSTOLIC_BP_HIGH_ALARM_LIMIT ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_SYSTOLIC_BP_HIGH_ALARM_LIMIT ) ); - - return limitValid; -} - -/*********************************************************************//** - * @brief - * The isHeartRateLowAlarmLimitValid function validates the heart rate - * low alarm limit value. - * @details \b Inputs: none. - * @details \b Outputs: none. - * @param value heart rate low alarm limit value (BPM). - * @return TRUE if the value is within valid range, FALSE otherwise. - *************************************************************************/ -static BOOL isHeartRateLowAlarmLimitValid( U32 value ) -{ - BOOL limitValid; - - limitValid = isVitalsAlarmLimitValueValid( - value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_HEART_RATE_LOW_ALARM_LIMIT ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_HEART_RATE_LOW_ALARM_LIMIT ) ); - - return limitValid; -} - -/*********************************************************************//** - * @brief - * The isHeartRateHighAlarmLimitValid function validates the heart rate - * high alarm limit value. - * @details \b Inputs: none. - * @details \b Outputs: none. - * @param value heart rate high alarm limit value (BPM). - * @return TRUE if the value is within valid range, FALSE otherwise. - *************************************************************************/ -static BOOL isHeartRateHighAlarmLimitValid( U32 value ) -{ - BOOL limitValid; - - limitValid = isVitalsAlarmLimitValueValid( - value, - getU32SysConfigTreatmentParamLowerRangeLimit( TREATMENT_PARAM_HEART_RATE_HIGH_ALARM_LIMIT ), - getU32SysConfigTreatmentParamUpperRangeLimit( TREATMENT_PARAM_HEART_RATE_HIGH_ALARM_LIMIT ) ); - - return limitValid; -} - -/*********************************************************************//** - * @brief * The isVitalsMeasurementIntervalValid function validates the vitals - * measurement interval value. + * measurement interval value against the configured range. * @details \b Inputs: none. * @details \b Outputs: none. * @param value vitals measurement interval value (minutes). - * @return TRUE if the value is within valid range, FALSE otherwise. + * @param param treatment parameter associated with the interval. + * @return TRUE if value is valid, FALSE otherwise. *************************************************************************/ -static BOOL isVitalsMeasurementIntervalValid( U32 value ) +static BOOL isVitalsMeasurementIntervalValid( U32 value, TREATMENT_PARAM_T param ) { BOOL intervalValid; - intervalValid = isVitalsAlarmLimitValueValid( - value, - getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_BP_MEAS_INTERVAL ), - getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_BP_MEAS_INTERVAL ) ); + intervalValid = ( ( value >= getU32TreatmentParamLowerRangeLimit( param ) ) && + ( value <= getU32TreatmentParamUpperRangeLimit( param ) ) ) ? TRUE : FALSE; return intervalValid; }