Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r30e46b4f07697652455fa861bcaa18f3d60ae11f -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 30e46b4f07697652455fa861bcaa18f3d60ae11f) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -179,6 +179,7 @@ U32 transitionToTreatmentMode( void ) { PRESSURE_LIMIT_CHANGE_RESPONSE_T respRecord; + F32 bicarbConvFactor; // don't re-initialize treatment if tester is jumping to Tx mode // if ( getPreviousOperationMode() != MODE_PRET ) @@ -209,11 +210,13 @@ presUFVolumeL = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); presUFRateLHr = presUFVolumeL / ( (F32)getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ) / (F32)MIN_PER_HOUR ); setDialysisDDParams( getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), presUFVolumeL, presUFRateLHr ); + bicarbConvFactor = BICARBONATE_CONVERSION_FACTOR; // Direct DD to generate dialysate and bypass while priming blood cmdStartGenerateDialysate( (F32)getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ), presUFRateLHr, getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ), TRUE, getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ), + bicarbConvFactor, getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ), getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ) ); // Read back limits for transmit to UI. Index: firmware/App/Modes/StateTxDialysis.c =================================================================== diff -u -r30e46b4f07697652455fa861bcaa18f3d60ae11f -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision 30e46b4f07697652455fa861bcaa18f3d60ae11f) +++ firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -101,10 +101,11 @@ *************************************************************************/ void transitionToDialysis( void ) { - F32 dialTemp = getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); - F32 acidConvFactor = getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ); - U32 sodium = getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ); - U32 bicarbonate = getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ); + F32 dialTemp = getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); + F32 acidConvFactor = getTreatmentParameterF32( TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR ); + F32 bicarbConvFactor = BICARBONATE_CONVERSION_FACTOR; + U32 sodium = getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ); + U32 bicarbonate = getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ); doorClosedRequired( TRUE ); @@ -115,7 +116,7 @@ // Set actuators as appropriate for state cmdStartGenerateDialysate( setDialysateFlowRate, setUFRateLHr, dialTemp, FALSE, - acidConvFactor, sodium, bicarbonate ); + acidConvFactor, bicarbConvFactor, sodium, bicarbonate ); transitionToDialysisState( currentDialysisState ); // Set substate for event Index: firmware/App/Services/DDInterface.c =================================================================== diff -u -r30e46b4f07697652455fa861bcaa18f3d60ae11f -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/Services/DDInterface.c (.../DDInterface.c) (revision 30e46b4f07697652455fa861bcaa18f3d60ae11f) +++ firmware/App/Services/DDInterface.c (.../DDInterface.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -97,17 +97,18 @@ *************************************************************************/ void resetDDInterface( void ) { - ddStarted = FALSE; - ddStartCommandSent = FALSE; + ddStarted = FALSE; + ddStartCommandSent = FALSE; - dialysateDeliveryCmdSet.start = FALSE; - dialysateDeliveryCmdSet.dialRate = 0.0F; - dialysateDeliveryCmdSet.ufRate = 0.0F; - dialysateDeliveryCmdSet.dialTemp = 0.0F; - dialysateDeliveryCmdSet.bypassDialyzer = TRUE; - dialysateDeliveryCmdSet.acidConvFactor = 0.0F; - dialysateDeliveryCmdSet.sodium = 0; - dialysateDeliveryCmdSet.bicarbonate = 0; + dialysateDeliveryCmdSet.start = FALSE; + dialysateDeliveryCmdSet.dialRate = 0.0F; + dialysateDeliveryCmdSet.ufRate = 0.0F; + dialysateDeliveryCmdSet.dialTemp = 0.0F; + dialysateDeliveryCmdSet.bypassDialyzer = TRUE; + dialysateDeliveryCmdSet.acidConvFactor = 0.0F; + dialysateDeliveryCmdSet.bicarbConvFactor = 0.0F; + dialysateDeliveryCmdSet.sodium = 0; + dialysateDeliveryCmdSet.bicarbonate = 0; } /**********************************************************************//** @@ -298,16 +299,17 @@ * @param bicarb Type of bicarbonate concentrate used. * @return none *************************************************************************/ -void cmdStartGenerateDialysate( F32 qd, F32 quf, F32 dialTemp, BOOL bypass, F32 acidConvFactor, U32 sodium, U32 bicarbonate ) +void cmdStartGenerateDialysate( F32 qd, F32 quf, F32 dialTemp, BOOL bypass, F32 acidConvFactor, F32 bicarbConvFactor, U32 sodium, U32 bicarbonate ) { - dialysateDeliveryCmdSet.start = TRUE; - dialysateDeliveryCmdSet.dialRate = qd; - dialysateDeliveryCmdSet.ufRate = quf; - dialysateDeliveryCmdSet.dialTemp = dialTemp; - dialysateDeliveryCmdSet.bypassDialyzer = bypass; - dialysateDeliveryCmdSet.acidConvFactor = acidConvFactor; - dialysateDeliveryCmdSet.sodium = sodium; - dialysateDeliveryCmdSet.bicarbonate = bicarbonate; + dialysateDeliveryCmdSet.start = TRUE; + dialysateDeliveryCmdSet.dialRate = qd; + dialysateDeliveryCmdSet.ufRate = quf; + dialysateDeliveryCmdSet.dialTemp = dialTemp; + dialysateDeliveryCmdSet.bypassDialyzer = bypass; + dialysateDeliveryCmdSet.acidConvFactor = acidConvFactor; + dialysateDeliveryCmdSet.bicarbConvFactor = bicarbConvFactor; + dialysateDeliveryCmdSet.sodium = sodium; + dialysateDeliveryCmdSet.bicarbonate = bicarbonate; #ifndef TEST_UI_ONLY sendMessage( MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA, COMM_BUFFER_OUT_CAN_TD_2_DD, (U08*)(&dialysateDeliveryCmdSet), sizeof( DIALYSATE_DELIVERY_REQ_PAYLOAD_T ) ); Index: firmware/App/Services/DDInterface.h =================================================================== diff -u -r30e46b4f07697652455fa861bcaa18f3d60ae11f -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/Services/DDInterface.h (.../DDInterface.h) (revision 30e46b4f07697652455fa861bcaa18f3d60ae11f) +++ firmware/App/Services/DDInterface.h (.../DDInterface.h) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -55,7 +55,7 @@ BOOL setDDOpMode( MESSAGE_T *message ); BOOL setDialysatePressure( MESSAGE_T *message ); -void cmdStartGenerateDialysate( F32 qd, F32 quf, F32 dialTemp, BOOL bypass, F32 acidConvFactor, U32 sodium, U32 bicarbonate ); +void cmdStartGenerateDialysate( F32 qd, F32 quf, F32 dialTemp, BOOL bypass, F32 acidConvFactor, F32 bicarbConvFactor, U32 sodium, U32 bicarbonate ); void cmdChangeQd( F32 qd ); void cmdChangeQuf( F32 quf ); void cmdBypassDialyzer( BOOL bypass ); Index: firmware/App/Services/TxParams.c =================================================================== diff -u -r0b6ae0a6975c4a8fdef0f8eba4eddefa04f278d4 -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision 0b6ae0a6975c4a8fdef0f8eba4eddefa04f278d4) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -123,13 +123,13 @@ { 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_F32, {.sFlt=0.0}, {.sFlt=30.0}, {.sFlt=1.0} }, // TREATMENT_PARAM_SUBST_FLUID_VOLUME + { 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 { CRITICAL_DATA_TYPE_F32, {.sFlt=35.0}, {.sFlt=38.0}, {.sFlt=37.0} }, // TREATMENT_PARAM_DIALYSATE_TEMPERATURE { CRITICAL_DATA_TYPE_F32, {.sFlt=0.00}, {.sFlt=0.20}, {.sFlt=0.20} }, // TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR // TODO - { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=500.0},{.sFlt=50.0} }, // TREATMENT_PARAM_PRE_WEIGHT - { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=500.0},{.sFlt=50.0} }, // TREATMENT_PARAM_EST_TARGET_WEIGHT + { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=200.0},{.sFlt=70.0} }, // TREATMENT_PARAM_PRE_WEIGHT + { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=200.0},{.sFlt=70.0} }, // TREATMENT_PARAM_EST_TARGET_WEIGHT { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=8.0}, {.sFlt=0.0} }, // TREATMENT_PARAM_UF_VOLUME }; Index: firmware/App/TDCommon.h =================================================================== diff -u -r1212df8584c824b35074eb8b7c2c72fea24dda78 -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 --- firmware/App/TDCommon.h (.../TDCommon.h) (revision 1212df8584c824b35074eb8b7c2c72fea24dda78) +++ firmware/App/TDCommon.h (.../TDCommon.h) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) @@ -121,6 +121,8 @@ // **** Common Macros **** +#define BICARBONATE_CONVERSION_FACTOR 0.07337F ///< Bicarbonate conversion factor mS/cm per mmol/L //TODO move to institutional records and update the usage with get API call + /**@}*/ // **** VectorCAST Definitions ****