Index: AlarmMapping.csv =================================================================== diff -u -r86e9dfbff50cb7e16fd94c16c1c818cef3b47eac -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- AlarmMapping.csv (.../AlarmMapping.csv) (revision 86e9dfbff50cb7e16fd94c16c1c818cef3b47eac) +++ AlarmMapping.csv (.../AlarmMapping.csv) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -104,7 +104,7 @@ 103,"HD non-volatile calibration group invalid record CRC." 104,"Air trap level sensors reporting illegal combination of air/fluid." 105,"DG non-volatile system group invalid record CRC." - 106,"Unused." + 106,"DG dialysate flow sensor invalid calibration record." 107,"HD reports DG restarted fault." 108,"HD syringe pump ADC error." 109,"HD syringe pump volume check error." @@ -114,7 +114,7 @@ 113,"HD blood leak zero command fault." 114,"HD venous air bubble detector self-test failure." 115,"DG temperature sensor out of range." - 116,"DG temperature sensor ADC out of range." + 116,"DG temperature sensor ADC fault." 117,"DG CAN message not acked." 118,"DG RTC config error." 119,"DG RTC battery low error." @@ -142,7 +142,7 @@ 141,"Air trap fill timeout during treatment." 142,"Blood pump occlusion detected." 143,"DG dialysate temperature sensors out of range." - 144,"Alarm ID available for use." + 144,"DG RO flow sensor invalid calibration record." 145,"Concentrate conductivity after adding acid out of range alarm." 146,"DG RTC or timer accuracy failure." 147,"Wait for the DG to produce dialysate." @@ -191,13 +191,13 @@ 190,"DG drain pump off fault." 191,"DG flow rate out of upper range." 192,"DG flow rate out of lower range." - 193,"." + 193,"Alarm available for use." 194,"DG RO pump duty cycle out of range." 195,"DG RO pump pressure out of range." - 196,"DG temperature sensor error flag fault." - 197,"DG temperature sensors ADC fault." + 196,"DG temperature sensor error bit fault." + 197,"DG temperature sensors FPGA fault." 198,"Alarm ID available for use." - 199,"." + 199,"Alarm ID available for use." 200,"DG thermistors/sensors temperature out of range." 201,"HD pre-treatment mode wet self-test lc vs FMD failure." 202,"HD pre-treatment mode dry pressure normal self-test failure." Index: denali.pro.user =================================================================== diff -u -r41733a7b1d156427923a8d0cf61fa0a4315e9725 -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- denali.pro.user (.../denali.pro.user) (revision 41733a7b1d156427923a8d0cf61fa0a4315e9725) +++ denali.pro.user (.../denali.pro.user) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -1,6 +1,6 @@ - + EnvironmentId Index: sources/gui/qml/main.qml =================================================================== diff -u -r86e9dfbff50cb7e16fd94c16c1c818cef3b47eac -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- sources/gui/qml/main.qml (.../main.qml) (revision 86e9dfbff50cb7e16fd94c16c1c818cef3b47eac) +++ sources/gui/qml/main.qml (.../main.qml) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -298,14 +298,10 @@ verticalAlignment : Text.AlignBottom height : 15 - text : Variables.notSetVariable(vTreatmentVitals.systolic , 2) + - "/" + - Variables.notSetVariable(vTreatmentVitals.diastolic, 2) + - "/" + - Variables.notSetVariable(vTreatmentVitals.heartRate, 2) + - ":" + - vBluetooth.pairedAddr + - " " + + text : Variables.notSetVariable(vTreatmentVitals.systolic__rt, 2) + "/" + + Variables.notSetVariable(vTreatmentVitals.diastolic_rt, 2) + "/" + + Variables.notSetVariable(vTreatmentVitals.heartRate_rt, 2) + ":" + + vBluetooth.pairedAddr + " " + (vBluetooth.notification || vDevice.status) font.pixelSize: 14 } Index: sources/model/hd/alarm/MAlarmMapping.cpp =================================================================== diff -u -rf9912fcd4b809e5a7fd59cf855488b6a762198d0 -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision f9912fcd4b809e5a7fd59cf855488b6a762198d0) +++ sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -7,7 +7,7 @@ * * \file MAlarmMapping.cpp * \author (last) Behrouz NematiPour - * \date (last) 01-Jul-2022 + * \date (last) 12-Jul-2022 * \author (original) Behrouz NematiPour * \date (original) 03-May-2021 * @@ -139,7 +139,7 @@ /*0103*/case GuiAlarmID::ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("HD non-volatile calibration group invalid record CRC." ); break; } /* 103*/ /*0104*/case GuiAlarmID::ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS : { result = QObject::tr("Air trap level sensors reporting illegal combination of air/fluid." ); break; } /* 104*/ /*0105*/case GuiAlarmID::ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("DG non-volatile system group invalid record CRC." ); break; } /* 105*/ -/*0106*/case GuiAlarmID::ALARM_ID__AVAILABLE_12 : { result = QObject::tr("Unused." ); break; } /* 106*/ +/*0106*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG dialysate flow sensor invalid calibration record." ); break; } /* 106*/ /*0107*/case GuiAlarmID::ALARM_ID_DG_RESTARTED_FAULT : { result = QObject::tr("HD reports DG restarted fault." ); break; } /* 107*/ /*0108*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR : { result = QObject::tr("HD syringe pump ADC error." ); break; } /* 108*/ /*0109*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR : { result = QObject::tr("HD syringe pump volume check error." ); break; } /* 109*/ @@ -149,7 +149,7 @@ /*0113*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_ZERO_CMD_FAULT : { result = QObject::tr("HD blood leak zero command fault." ); break; } /* 113*/ /*0114*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE : { result = QObject::tr("HD venous air bubble detector self-test failure." ); break; } /* 114*/ /*0115*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensor out of range." ); break; } /* 115*/ -/*0116*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ADC_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensor ADC out of range." ); break; } /* 116*/ +/*0116*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_ADC_FAULT : { result = QObject::tr("DG temperature sensor ADC fault." ); break; } /* 116*/ /*0117*/case GuiAlarmID::ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED : { result = QObject::tr("DG CAN message not acked." ); break; } /* 117*/ /*0118*/case GuiAlarmID::ALARM_ID_DG_RTC_CONFIG_ERROR : { result = QObject::tr("DG RTC config error." ); break; } /* 118*/ /*0119*/case GuiAlarmID::ALARM_ID_DG_RTC_BATTERY_LOW : { result = QObject::tr("DG RTC battery low error." ); break; } /* 119*/ @@ -177,7 +177,7 @@ /*0141*/case GuiAlarmID::ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT : { result = QObject::tr("Air trap fill timeout during treatment." ); break; } /* 141*/ /*0142*/case GuiAlarmID::ALARM_ID_OCCLUSION_BLOOD_PUMP : { result = QObject::tr("Blood pump occlusion detected." ); break; } /* 142*/ /*0143*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE : { result = QObject::tr("DG dialysate temperature sensors out of range." ); break; } /* 143*/ -/*0144*/case GuiAlarmID::ALARM_ID__AVAILABLE_5 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 144*/ +/*0144*/case GuiAlarmID::ALARM_ID_DG_RO_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG RO flow sensor invalid calibration record." ); break; } /* 144*/ /*0145*/case GuiAlarmID::ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Concentrate conductivity after adding acid out of range alarm." ); break; } /* 145*/ /*0146*/case GuiAlarmID::ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE : { result = QObject::tr("DG RTC or timer accuracy failure." ); break; } /* 146*/ /*0147*/case GuiAlarmID::ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT : { result = QObject::tr("Wait for the DG to produce dialysate." ); break; } /* 147*/ @@ -188,8 +188,8 @@ /*0152*/case GuiAlarmID::ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water pressure in low range." ); break; } /* 152*/ /*0153*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_HIGH : { result = QObject::tr("HD prime completed high priority alarm." ); break; } /* 153*/ /*0154*/case GuiAlarmID::ALARM_ID_NVDATA_EEPROM_OPS_FAILURE : { result = QObject::tr("EEPROM operations (read, write, erase) failure." ); break; } /* 154*/ -/*0155*/case GuiAlarmID::ALARM_ID__AVAILABLE_6 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 155*/ -/*0156*/case GuiAlarmID::ALARM_ID__AVAILABLE_20 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 156*/ +/*0155*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ADC_OUT_OF_RANGE : { result = QObject::tr("Alarm ID available for use." ); break; } /* 155*/ +/*0156*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_FAULT : { result = QObject::tr("Alarm ID available for use." ); break; } /* 156*/ /*0157*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT : { result = QObject::tr("DG chemical disinfect prime acid line timeout." ); break; } /* 157*/ /*0158*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water temperature is in the low range." ); break; } /* 158*/ /*0159*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_FLOW_VS_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate inlet pump failed flow vs motor speed check." ); break; } /* 159*/ @@ -226,13 +226,13 @@ /*0190*/case GuiAlarmID::ALARM_ID_DRAIN_PUMP_OFF_FAULT : { result = QObject::tr("DG drain pump off fault." ); break; } /* 190*/ /*0191*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_UPPER_RANGE : { result = QObject::tr("DG flow rate out of upper range." ); break; } /* 191*/ /*0192*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_LOWER_RANGE : { result = QObject::tr("DG flow rate out of lower range." ); break; } /* 192*/ -/*0193*/case GuiAlarmID::ALARM_ID__AVAILABLE_13 : { result = QObject::tr("." ); break; } /* 193*/ +/*0193*/case GuiAlarmID::ALARM_ID__AVAILABLE_13 : { result = QObject::tr("Alarm available for use." ); break; } /* 193*/ /*0194*/case GuiAlarmID::ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump duty cycle out of range." ); break; } /* 194*/ /*0195*/case GuiAlarmID::ALARM_ID_RO_PUMP_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump pressure out of range." ); break; } /* 195*/ -/*0196*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_FAULT : { result = QObject::tr("DG temperature sensor error flag fault." ); break; } /* 196*/ -/*0197*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_ADC_FAULT : { result = QObject::tr("DG temperature sensors ADC fault." ); break; } /* 197*/ +/*0196*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ERROR_BIT_FAULT : { result = QObject::tr("DG temperature sensor error bit fault." ); break; } /* 196*/ +/*0197*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_FPGA_FAULT : { result = QObject::tr("DG temperature sensors FPGA fault." ); break; } /* 197*/ /*0198*/case GuiAlarmID::ALARM_ID__AVAILABLE_10 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 198*/ -/*0199*/case GuiAlarmID::ALARM_ID__AVAILABLE_14 : { result = QObject::tr("." ); break; } /* 199*/ +/*0199*/case GuiAlarmID::ALARM_ID__AVAILABLE_14 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 199*/ /*0200*/case GuiAlarmID::ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE : { result = QObject::tr("DG thermistors/sensors temperature out of range." ); break; } /* 200*/ /*0201*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_FLOW_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test lc vs FMD failure." ); break; } /* 201*/ /*0202*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode dry pressure normal self-test failure." ); break; } /* 202*/ Index: sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp =================================================================== diff -u -rec7f919fdb70ff29a8de627937e4ad7008e59c1c -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision ec7f919fdb70ff29a8de627937e4ad7008e59c1c) +++ sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -48,6 +48,7 @@ // adjustment_Accepted ( vData.mAccepted ); // adjustment_Reason ( vData.mReason ); + update_rt (vData.mSystolic, vData.mDiastolic, vData.mPulseRate); emit didTrigger(vData.mSystolic, vData.mDiastolic, vData.mPulseRate); // if the vitals is disabled it means Gui is probably in an incorrect state and is unable to handle the vital information. LOG_EVENT_UI(tr("Vital received,%1,%2,%3") @@ -135,6 +136,21 @@ } /*! + * \brief View::VTreatmentVitals::update_rt + * \details The vital properties will only be updated if the user confirms the read values. + * But this ones are for debugging purposes and will be updated all the time in Real Time when the vitals received. + * \param vSystolic - Blood Pressure Systolic + * \param vDiastolic - Blood Pressure Diastolic + * \param vHeartRate - Heart Rate + */ +void View::VTreatmentVitals::update_rt(quint16 vSystolic, quint16 vDiastolic, quint16 vHeartRate) +{ + systolic__rt ( vSystolic ); + diastolic_rt ( vDiastolic ); + heartRate_rt ( vHeartRate ); +} + +/*! * \brief View::VTreatmentVitals::treatmentLog * \details Appends the vitals values to the treatment log list (for later store in the TxLog at the end of Tx) * \note the method update has to be called before calling this method to update the property values used in this method. Index: sources/view/hd/adjustment/common/VCommonAdjustmentVitals.h =================================================================== diff -u -rec7f919fdb70ff29a8de627937e4ad7008e59c1c -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 --- sources/view/hd/adjustment/common/VCommonAdjustmentVitals.h (.../VCommonAdjustmentVitals.h) (revision ec7f919fdb70ff29a8de627937e4ad7008e59c1c) +++ sources/view/hd/adjustment/common/VCommonAdjustmentVitals.h (.../VCommonAdjustmentVitals.h) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) @@ -70,9 +70,15 @@ PROPERTY( quint16 , diastolic , 0) PROPERTY( quint16 , heartRate , 0) + PROPERTY( quint16 , systolic__rt , 0) + PROPERTY( quint16 , diastolic_rt , 0) + PROPERTY( quint16 , heartRate_rt , 0) + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentVitals, UIBloodPressureData) void update (quint16 vSystolic, quint16 vDiastolic, quint16 vHeartRate); + void update_rt (quint16 vSystolic, quint16 vDiastolic, quint16 vHeartRate); + void treatmentLog(); // timer