Index: firmware/App/Services/TxParams.c =================================================================== diff -u -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 -r12af1351f6db7747ebe2b4c52a9bac41ef551968 --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision 12af1351f6db7747ebe2b4c52a9bac41ef551968) @@ -123,6 +123,7 @@ { CRITICAL_DATA_TYPE_U32, {.uInt=300}, {.uInt=500}, {.uInt=300} }, // TREATMENT_PARAM_PRIME_RINSEBACK_VOLUME { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=3}, {.uInt=0} }, // TREATMENT_PARAM_HEPATITIS_B { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=2}, {.uInt=0} }, // TREATMENT_PARAM_ACID_CONCENTRATE + { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=1}, {.uInt=0} }, // TREATMENT_PARAM_CONFIRMATION { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=48.0}, {.sFlt=1.0} }, // TREATMENT_PARAM_SUBST_FLUID_VOLUME { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=2.0}, {.sFlt=0.0} }, // TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=3.0}, {.sFlt=0.0} }, // TREATMENT_PARAM_HEPARIN_DELIVERY_RATE @@ -439,6 +440,7 @@ BOOL paramsAreInvalid = TRUE; BOOL paramsAreInRange, paramsAreConsistent, isUFValid; BOOL result = FALSE; + BOOL paramsConfirmed = FALSE; TREATMENT_PARAMS_DATA_PAYLOAD_T params; U32 rejReasons[ NUM_OF_TREATMENT_PARAMS ]; @@ -456,6 +458,9 @@ // Extract treatment parameters from given payload to staging array so we can more easily work with them extractTreatmentParamsFromPayload( params ); + // Flag that indicates if the user have sent the tx params validation from pre-treatment create rx state, + // so that if all params are valid, TD software will transition state to patient connection + paramsConfirmed = (BOOL)stagedParams[ TREATMENT_PARAM_TREATMENT_DURATION ].uInt; // Range check each treatment parameter paramsAreInRange = checkTreatmentParamsInRange( &rejReasons[0] ); @@ -473,7 +478,10 @@ paramsAreInvalid = FALSE; validTreatParamsReceived = TRUE; // direct confirmation, no validation state exists now - treatParamsConfirmed = TRUE; + if ( TRUE == paramsConfirmed ) + { + treatParamsConfirmed = TRUE; + } // Set all treatment parameters after validation for ( param = TREATMENT_PARAM_FIRST_UINT; param < NUM_OF_TREATMENT_PARAMS; param++ ) Index: firmware/App/Services/TxParams.h =================================================================== diff -u -rd495985858b3ef51b695a44ceedf6c13a8edb821 -r12af1351f6db7747ebe2b4c52a9bac41ef551968 --- firmware/App/Services/TxParams.h (.../TxParams.h) (revision d495985858b3ef51b695a44ceedf6c13a8edb821) +++ firmware/App/Services/TxParams.h (.../TxParams.h) (revision 12af1351f6db7747ebe2b4c52a9bac41ef551968) @@ -57,6 +57,7 @@ U32 rinsebackVolume_mL; ///< User set rinseback volume (in mL) U32 hepatitisBStatus; ///< User set Hepatitis B status option U32 acidConcentrate; ///< User set acid concentrate option + U32 finalConfirmation; ///< Confirmation flag indicating treatment params validated are final F32 substitutionFluidVolume_L; ///< User set substitution fluid volume (in L) F32 hepBolusVolume_mL; ///< User set Heparin bolus volume (in mL) F32 hepDeliveryRate_mL_hr; ///< User set Heparin delivery rate (in mL/hr)