Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r5a413e437f8a341c9e9b77342df6e634c1563add -r9626c415d2e77dcb6ee90cced02ca8538eabe58c --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 5a413e437f8a341c9e9b77342df6e634c1563add) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 9626c415d2e77dcb6ee90cced02ca8538eabe58c) @@ -75,17 +75,18 @@ TREATMENT_PARAM_ACID_CONCENTRATE = 5 TREATMENT_PARAM_BICARB_CONCENTRATE = 6 TREATMENT_PARAM_DIALYZER_TYPE = 7 - TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN = 8 - TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN = 9 - TREATMENT_PARAM_ARTERIAL_PRESSURE_LOW_LIMIT_MMHG = 10 - TREATMENT_PARAM_ARTERIAL_PRESSURE_HIGH_LIMIT_MMHG = 11 - TREATMENT_PARAM_VENOUS_PRESSURE_LOW_LIMIT_MMHG = 12 - TREATMENT_PARAM_VENOUS_PRESSURE_HIGH_LIMIT_MMHG = 13 - TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR = 14 - TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML = 15 - TREATMENT_PARAM_DIALYSATE_TEMPERATURE_C = 16 - TREATMENT_PARAM_UF_VOLUME_L = 17 - NUM_OF_TREATMENT_PARAMS = 18 + TREATMENT_PARAM_HEPARIN_TYPE = 8 + TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN = 9 + TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN = 10 + TREATMENT_PARAM_ARTERIAL_PRESSURE_LOW_LIMIT_MMHG = 11 + TREATMENT_PARAM_ARTERIAL_PRESSURE_HIGH_LIMIT_MMHG = 12 + TREATMENT_PARAM_VENOUS_PRESSURE_LOW_LIMIT_MMHG = 13 + TREATMENT_PARAM_VENOUS_PRESSURE_HIGH_LIMIT_MMHG = 14 + TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR = 15 + TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML = 16 + TREATMENT_PARAM_DIALYSATE_TEMPERATURE_C = 17 + TREATMENT_PARAM_UF_VOLUME_L = 18 + NUM_OF_TREATMENT_PARAMS = 19 @classmethod def has_value(cls, value): @@ -537,6 +538,7 @@ U32 acid concentrate. \n U32 bicarb concentrate. \n U32 dialyzer type. \n + U32 heparin type. \n U32 BP measurement interval. \n U32 rinseback flow rate. \n S32 arterial pressure low alarm limit. \n @@ -565,24 +567,26 @@ message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7])) dlz = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) + hpr = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_9])) bpi = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9])) + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_10])) rbf = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10])) + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_11])) apl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11])) + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_12])) aph = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12])) + message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_13])) vpl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13])) + message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_14])) vph = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14])) + message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_15])) hdr = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15])) + message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_16])) hbv = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16])) + message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_17])) tmp = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17])) + message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_18])) self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_BLOOD_FLOW_RATE_ML_MIN.value] = bld[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_DIALYSATE_FLOW_RATE_ML_MIN.value] = dia[0] @@ -592,6 +596,7 @@ self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_ACID_CONCENTRATE.value] = acd[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_BICARB_CONCENTRATE.value] = bic[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_DIALYZER_TYPE.value] = dlz[0] + self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_HEPARIN_TYPE.value] = hpr[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN.value] = bpi[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN.value] = rbf[0] self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_ARTERIAL_PRESSURE_LOW_LIMIT_MMHG.value] = apl[0] @@ -636,6 +641,7 @@ U32 Reject reason code for acid concentrate (0=valid). \n U32 Reject reason code for bicarb concentrate (0=valid). \n U32 Reject reason code for dialyzer type (0=valid). \n + U32 Reject reason code for heparin type (0=valid). \n U32 Reject reason code for BP measurement interval (0=valid). \n U32 Reject reason code for rinseback flow rate (0=valid). \n U32 Reject reason code for arterial pressure low alarm limit (0=valid). \n @@ -666,24 +672,26 @@ message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) dlz = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9])) + hpr = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_10])) bpi = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10])) + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_11])) rbf = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11])) + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_12])) apl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12])) + message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_13])) aph = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13])) + message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_14])) vpl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14])) + message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_15])) vph = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15])) + message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_16])) hdr = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16])) + message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_17])) hbv = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17])) + message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_18])) tmp = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18])) + message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_19])) if val[0] == 1: self.treatment_parameters_valid = True @@ -697,6 +705,7 @@ self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_ACID_CONCENTRATE.value] = acd[0] self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_BICARB_CONCENTRATE.value] = bic[0] self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_DIALYZER_TYPE.value] = dlz[0] + self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_HEPARIN_TYPE.value] = hpr[0] self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN.value] = bpi[0] self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN.value] = rbf[0] self.treatment_parameters_reject_reasons[self.TreatmentParameters.TREATMENT_PARAM_ARTERIAL_PRESSURE_HIGH_LIMIT_MMHG.value] = aph[0] @@ -1255,6 +1264,7 @@ acid: int = 0, bicarb: int = 0, dialyzer: int = 0, + heparin: int = 0, dia_temp: float = 37.0, art_low: int = -300, art_high: int = 0, @@ -1277,6 +1287,7 @@ @param acid: (int) acid concentrate type @param bicarb: (int) bicarbonate concentrate type @param dialyzer: (int) dialyzer type + @param heparin: (int) heparin type @param dia_temp: (float) dialysate temperature (in deg C) @param art_low: (int) arterial pressure low alarm limit (in mmHg) @param art_high: (int) arterial pressure high alarm limit (in mmHg) @@ -1295,6 +1306,7 @@ self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_ACID_CONCENTRATE.value] = acid self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_BICARB_CONCENTRATE.value] = bicarb self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_DIALYZER_TYPE.value] = dialyzer + self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_HEPARIN_TYPE.value] = heparin self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_BLOOD_PRESSURE_MEAS_INTERVAL_MIN.value] = bp_intvl self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN.value] = rb_flow self.treatment_parameters[self.TreatmentParameters.TREATMENT_PARAM_ARTERIAL_PRESSURE_LOW_LIMIT_MMHG.value] = art_low @@ -1313,6 +1325,7 @@ acc = integer_to_bytearray(acid) bic = integer_to_bytearray(bicarb) dzr = integer_to_bytearray(dialyzer) + hpr = integer_to_bytearray(heparin) bpi = integer_to_bytearray(bp_intvl) rbf = integer_to_bytearray(rb_flow) apl = integer_to_bytearray(art_low) @@ -1323,7 +1336,7 @@ hbv = float_to_bytearray(hep_bol) tmp = float_to_bytearray(dia_temp) - payload = bld + dia + dur + hps + sal + acc + bic + dzr + bpi + rbf + apl + aph + vpl + vph + hdr + hbv + tmp + payload = bld + dia + dur + hps + sal + acc + bic + dzr + hpr + bpi + rbf + apl + aph + vpl + vph + hdr + hbv + tmp message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, message_id=MsgIds.MSG_ID_UI_NEW_TREATMENT_PARAMS.value, payload=payload)