Index: AlarmMapping.csv =================================================================== diff -u -r3561f79af1a92356eea01d5d0c3297c69d2ecdf2 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- AlarmMapping.csv (.../AlarmMapping.csv) (revision 3561f79af1a92356eea01d5d0c3297c69d2ecdf2) +++ AlarmMapping.csv (.../AlarmMapping.csv) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -94,8 +94,8 @@ 93,"This alarm ID is available for use." 94,"This alarm ID is available for use." 95,"This alarm ID is available for use." - 96,"This alarm ID is available for use." - 97,"This alarm ID is available for use." + 96,"Inlet water temperature in high range." + 97,"Fill conductivity out of range." 98,"HD battery communication fault." 99,"HD syringe pump stall alarm." 100,"HD no cartridge self-test timeout." @@ -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,"This alarm ID is available for use." + 106,"DG inlet water conductivity is greater than threshold." 107,"HD reports DG restarted fault." 108,"HD syringe pump ADC error." 109,"HD syringe pump volume check error." @@ -115,10 +115,10 @@ 114,"HD venous air bubble detector self-test failure." 115,"DG temperature sensor out of range." 116,"DG temperature sensor ADC out of range." - 117,"This alarm ID is available for use." - 118,"This alarm ID is available for use." - 119,"This alarm ID is available for use." - 120,"This alarm ID is available for use." + 117,"DG primary heater internal temperature out of range." + 118,"DG primary heater cold junction temperature out of range." + 119,"DG trimmer heater internal temperature out of range." + 120,"DG trimmer heater cold junction temperature out of range." 121,"DG main primary heater voltage out of range." 122,"DG small primary heater voltage out of range." 123,"DG trimmer heater voltage out of range." @@ -145,18 +145,18 @@ 144,"DG software configuration record invalid CRC." 145,"Concentrate conductivity after adding acid out of range alarm." 146,"Dialysate conductivity out of range." - 147,"DG dialysate generation conductivity fault alarm." + 147,"Wait for the DG to produce dialysate." 148,"Inlet water temperature too high." - 149,"Inlet water temperature too low." - 150,"Inlet water conductivity too high." - 151,"Inlet water conductivity too low." - 152,"Inlet water pressure too low." + 149,"Alarm ID available for use." + 150,"Inlet water conductivity in high range." + 151,"Inlet water conductivity in low range." + 152,"Inlet water pressure in low range." 153,"HD prime completed high priority alarm." 154,"EEPROM operations (read, write, erase) failure." 155,"DG software configuration record invalid CRC." 156,"HW usage data (treatment time in HD and total consumed water in DG) failure." 157,"DG chemical disinfect prime acid line timeout." - 158,"This alarm ID is available for use." + 158,"Inlet water temperature is in the low range." 159,"Dialysate inlet pump failed flow vs motor speed check." 160,"Blood pump rotor speed too high." 161,"This alarm ID is available for use." Index: denali.pro.user =================================================================== diff -u -r3561f79af1a92356eea01d5d0c3297c69d2ecdf2 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- denali.pro.user (.../denali.pro.user) (revision 3561f79af1a92356eea01d5d0c3297c69d2ecdf2) +++ denali.pro.user (.../denali.pro.user) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -1,6 +1,6 @@ - + EnvironmentId Index: en_US.udic =================================================================== diff -u -rf8b74fc25bbcbc5bd4efba33a84695dee0813ce3 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- en_US.udic (.../en_US.udic) (revision f8b74fc25bbcbc5bd4efba33a84695dee0813ce3) +++ en_US.udic (.../en_US.udic) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -207,3 +207,4 @@ POSTItem VDGValves MHDAccelerometer +MVC Index: sources/cloudsync/CloudSyncController.cpp =================================================================== diff -u -r6f81407d61aa7d43f316f66f1038807cab5c253b -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision 6f81407d61aa7d43f316f66f1038807cab5c253b) +++ sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -795,9 +795,9 @@ if ( _deviceInfoUI.isEmpty() ) { _deviceInfoUI = qApp->applicationVersion(); } saveUIHistory(eMessageID_DeviceInfo , { _deviceInfoHD, _deviceInfoDG, _deviceInfoUI } ); saveUIHistory(eMessageID_DeviceRegister , { _deviceInfoHD, _deviceInfoDG, _deviceInfoUI } ); // the device registration request format is the same as Device info with different message id. - sendDeviceInfo(); - testDeviceRegister(); + testDeviceRegister (); // it is expected on the CloudSync App to get the + sendDeviceInfo (); // this one may need to be removed and only will be sent on the request stopDeviceInfoWait(); Index: sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml =================================================================== diff -u -r16f8cc023ada8e2408164a89d61a036ca0e0cfac -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml (.../TreatmentHeparin.qml) (revision 16f8cc023ada8e2408164a89d61a036ca0e0cfac) +++ sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml (.../TreatmentHeparin.qml) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -34,6 +34,8 @@ readonly property bool isDispensing : vHDTreatmentStates.hpDispensing readonly property bool isCompleted : vHDTreatmentStates.hpCompleted readonly property bool isEmpty : vHDTreatmentStates.hpEmpty + readonly property bool isRejected : vTreatmentAdjustmentHeparin.adjustment_Accepted + readonly property bool displayReason : _private.displayReason readonly property bool isTxRunning : vHDTreatmentStates.txDialysis @@ -51,6 +53,8 @@ readonly property string mesgStopped : qsTr("Delivery Stopped") readonly property string mesgPaused : qsTr("Delivery Paused") readonly property string mesgDispensing : qsTr("Dispensing Active") + + property bool displayReason : false readonly property string mesgRejectReason : vTreatmentAdjustmentHeparin.adjustment_ReasonText } @@ -83,15 +87,27 @@ if ( isDispensing ) vTreatmentAdjustmentHeparin.doPause () } + Connections { target: vTreatmentAdjustmentHeparin + onAdjustmentTriggered : { + _private.displayReason = ! vTreatmentAdjustmentHeparin.adjustment_Accepted + } + } + Connections { target: vHDTreatmentStates + onHeparinChanged: { + _private.displayReason = false + } + + } + notification { visible : true - text : isBolus ? _private.mesgBolus : + text : displayReason ? _private.mesgRejectReason : + isBolus ? _private.mesgBolus : isOff ? _private.mesgOff : isStopped ? _private.mesgStopped : isPaused ? _private.mesgPaused : isCompleted ? _private.mesgCompleted : isEmpty ? _private.mesgEmpty : - isDispensing ? _private.mesgDispensing : - _private.mesgRejectReason + isDispensing ? _private.mesgDispensing : "" } } Index: sources/gui/qml/plugins/virtualkeyboard/layouts/en_US/symbols.qml =================================================================== diff -u -reaf21ffe52c818b4c8abdb2084582ada9dc78ceb -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/gui/qml/plugins/virtualkeyboard/layouts/en_US/symbols.qml (.../symbols.qml) (revision eaf21ffe52c818b4c8abdb2084582ada9dc78ceb) +++ sources/gui/qml/plugins/virtualkeyboard/layouts/en_US/symbols.qml (.../symbols.qml) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -182,9 +182,9 @@ weight: 217 displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? "АБВ" : "ABC" } - ChangeLanguageKey { - weight: 154 - } + // ChangeLanguageKey { + // weight: 154 + // } SpaceKey { weight: 864 } @@ -193,11 +193,11 @@ text: "." alternativeKeys: ".," } - Key { - key: 0xE000 - text: ":-)" - alternativeKeys: [ ";-)", ":-)", ":-D", ":-(", "<3" ] - } + // Key { + // key: 0xE000 + // text: ":-)" + // alternativeKeys: [ ";-)", ":-)", ":-D", ":-(", "<3" ] + // } HideKeyboardKey { weight: 204 } Index: sources/model/hd/alarm/MAlarmMapping.cpp =================================================================== diff -u -r3561f79af1a92356eea01d5d0c3297c69d2ecdf2 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision 3561f79af1a92356eea01d5d0c3297c69d2ecdf2) +++ sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -7,7 +7,7 @@ * * \file MAlarmMapping.cpp * \author (last) Behrouz NematiPour - * \date (last) 28-Mar-2022 + * \date (last) 02-Apr-2022 * \author (original) Behrouz NematiPour * \date (original) 03-May-2021 * @@ -129,8 +129,8 @@ /*0093*/case GuiAlarmID::ALARM_ID____AVAILABLE_15 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 93*/ /*0094*/case GuiAlarmID::ALARM_ID____AVAILABLE_16 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 94*/ /*0095*/case GuiAlarmID::ALARM_ID____AVAILABLE_17 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 95*/ -/*0096*/case GuiAlarmID::ALARM_ID____AVAILABLE_18 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 96*/ -/*0097*/case GuiAlarmID::ALARM_ID____AVAILABLE_19 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 97*/ +/*0096*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE : { result = QObject::tr("Inlet water temperature in high range." ); break; } /* 96*/ +/*0097*/case GuiAlarmID::ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Fill conductivity out of range." ); break; } /* 97*/ /*0098*/case GuiAlarmID::ALARM_ID_HD_BATTERY_COMM_FAULT : { result = QObject::tr("HD battery communication fault." ); break; } /* 98*/ /*0099*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_STALL : { result = QObject::tr("HD syringe pump stall alarm." ); break; } /* 99*/ /*0100*/case GuiAlarmID::ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT : { result = QObject::tr("HD no cartridge self-test timeout." ); break; } /* 100*/ @@ -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_20 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 106*/ +/*0106*/case GuiAlarmID::ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY : { result = QObject::tr("DG inlet water conductivity is greater than threshold." ); 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*/ @@ -150,10 +150,10 @@ /*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*/ -/*0117*/case GuiAlarmID::ALARM_ID____AVAILABLE_28 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 117*/ -/*0118*/case GuiAlarmID::ALARM_ID____AVAILABLE_29 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 118*/ -/*0119*/case GuiAlarmID::ALARM_ID____AVAILABLE_30 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 119*/ -/*0120*/case GuiAlarmID::ALARM_ID____AVAILABLE_31 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 120*/ +/*0117*/case GuiAlarmID::ALARM_ID_DG_PRIMARY_HEATER_INTERNAL_TEMP_OUT_OF_RANGE : { result = QObject::tr("DG primary heater internal temperature out of range." ); break; } /* 117*/ +/*0118*/case GuiAlarmID::ALARM_ID_DG_PRIMARY_HEATER_CJ_TEMP_OUT_OF_RANGE : { result = QObject::tr("DG primary heater cold junction temperature out of range." ); break; } /* 118*/ +/*0119*/case GuiAlarmID::ALARM_ID_DG_TRIMMER_HEATER_INTERNAL_TEMP_OUT_OF_RANGE : { result = QObject::tr("DG trimmer heater internal temperature out of range." ); break; } /* 119*/ +/*0120*/case GuiAlarmID::ALARM_ID_DG_TRIMMER_HEATER_CJ_TEMP_OUT_OF_RANGE : { result = QObject::tr("DG trimmer heater cold junction temperature out of range." ); break; } /* 120*/ /*0121*/case GuiAlarmID::ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG main primary heater voltage out of range." ); break; } /* 121*/ /*0122*/case GuiAlarmID::ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG small primary heater voltage out of range." ); break; } /* 122*/ /*0123*/case GuiAlarmID::ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG trimmer heater voltage out of range." ); break; } /* 123*/ @@ -180,18 +180,18 @@ /*0144*/case GuiAlarmID::ALARM_ID_DG_SW_CONFIG_RECORD_INVALID_CRC : { result = QObject::tr("DG software configuration record invalid CRC." ); 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_DIALYSATE_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Dialysate conductivity out of range." ); break; } /* 146*/ -/*0147*/case GuiAlarmID::ALARM_ID_DIALYSATE_CONDUCTIVITY_FAULT : { result = QObject::tr("DG dialysate generation conductivity fault alarm." ); break; } /* 147*/ +/*0147*/case GuiAlarmID::ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT : { result = QObject::tr("Wait for the DG to produce dialysate." ); break; } /* 147*/ /*0148*/case GuiAlarmID::ALARM_ID_INLET_WATER_HIGH_TEMPERATURE : { result = QObject::tr("Inlet water temperature too high." ); break; } /* 148*/ -/*0149*/case GuiAlarmID::ALARM_ID_INLET_WATER_LOW_TEMPERATURE : { result = QObject::tr("Inlet water temperature too low." ); break; } /* 149*/ -/*0150*/case GuiAlarmID::ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY : { result = QObject::tr("Inlet water conductivity too high." ); break; } /* 150*/ -/*0151*/case GuiAlarmID::ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY : { result = QObject::tr("Inlet water conductivity too low." ); break; } /* 151*/ -/*0152*/case GuiAlarmID::ALARM_ID_INLET_WATER_LOW_PRESSURE : { result = QObject::tr("Inlet water pressure too low." ); break; } /* 152*/ +/*0149*/case GuiAlarmID::ALARM_ID____AVAILABLE_28 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 149*/ +/*0150*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE : { result = QObject::tr("Inlet water conductivity in high range." ); break; } /* 150*/ +/*0151*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE : { result = QObject::tr("Inlet water conductivity in low range." ); break; } /* 151*/ +/*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_HD_SW_CONFIG_RECORD_INVALID_CRC : { result = QObject::tr("DG software configuration record invalid CRC." ); break; } /* 155*/ /*0156*/case GuiAlarmID::ALARM_ID_NVDATA_HW_USAGE_DATA_CRC_ERROR : { result = QObject::tr("HW usage data (treatment time in HD and total consumed water in DG) failure." ); 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____AVAILABLE_24 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 158*/ +/*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*/ /*0160*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH : { result = QObject::tr("Blood pump rotor speed too high." ); break; } /* 160*/ /*0161*/case GuiAlarmID::ALARM_ID____AVAILABLE_26 : { result = QObject::tr("This alarm ID is available for use." ); break; } /* 161*/ Index: sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -101,6 +101,7 @@ selfTestDry_pressureSensors ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_STATE ); selfTestDry_pressureSensorsNormal ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE ); selfTestDry_syringePump ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE ); + selfTestDry_syringePumpOcclusionDetection ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE ); selfTestDry_stopped ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_STOPPED_STATE ); selfTestDry_complete ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_COMPLETE_STATE ); } @@ -117,6 +118,8 @@ prime_salineCirculateBloodCircuit ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE ); prime_reservoiOneFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE ); prime_dialysateDialyzer ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_DIALYZER_STATE ); + prime_salineDialyzerSetup ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_DIALYZER_SETUP_STATE ); + prime_salineDialyzer ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_DIALYZER_STATE ); prime_reservoirTwoFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE ); prime_dialysateBypass ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_BYPASS_STATE ); prime_wetSelfTests ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WET_SELF_TESTS_STATE ); Index: sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -100,6 +100,7 @@ STATE ( bool , selfTestDry_pressureSensors , false ) ///< DRY_SELF_TESTS_PRESSURE_SENSORS_STATE , Pressure sensors verify pressure readings state. STATE ( bool , selfTestDry_pressureSensorsNormal , false ) ///< DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE , Pressure sensors verify normal pressure readings state. STATE ( bool , selfTestDry_syringePump , false ) ///< DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE , Prime syringe pump state + STATE ( bool , selfTestDry_syringePumpOcclusionDetection, false ) ///< DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE , Occlusion detection state STATE ( bool , selfTestDry_stopped , false ) ///< DRY_SELF_TESTS_STOPPED_STATE , Dry self-test stopped state. STATE ( bool , selfTestDry_complete , false ) ///< DRY_SELF_TESTS_COMPLETE_STATE , Dry self-test complete state. @@ -111,6 +112,8 @@ STATE ( bool , prime_salineCirculateBloodCircuit , false ) ///< HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE , Circulate blood circuit state STATE ( bool , prime_reservoiOneFillComplete , false ) ///< HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE , Wait for reservoir 1 fill complete STATE ( bool , prime_dialysateDialyzer , false ) ///< HD_PRIME_DIALYSATE_DIALYZER_STATE , Dialysate dialyzer fluid path state + STATE ( bool , prime_salineDialyzerSetup , false ) ///< HD_PRIME_SALINE_DIALYZER_SETUP_STATE , Saline dialyzer setup state + STATE ( bool , prime_salineDialyzer , false ) ///< HD_PRIME_SALINE_DIALYZER_STATE , Saline dialyzer fluid path state STATE ( bool , prime_reservoirTwoFillComplete , false ) ///< HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE , Wait for reservoir 2 fill complete STATE ( bool , prime_dialysateBypass , false ) ///< HD_PRIME_DIALYSATE_BYPASS_STATE , Dialysate bypass fluid path state STATE ( bool , prime_wetSelfTests , false ) ///< HD_PRIME_WET_SELF_TESTS_STATE , Perform wet self-tests after priming complete Index: sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -61,13 +61,15 @@ sbMaxReached ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); // Heparin States - hpOff ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_OFF ); - hpStopped ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_STOPPED ); - hpPaused ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_PAUSED ); - hpInitial_bolus ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_INITIAL_BOLUS ); - hpDispensing ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_DISPENSING ); - hpCompleted ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_COMPLETED ); - hpEmpty ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_EMPTY ); + _heparin = false; + hpOff ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_OFF ); _heparin = _heparin || _hpOff ; + hpStopped ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_STOPPED ); _heparin = _heparin || _hpStopped ; + hpPaused ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_PAUSED ); _heparin = _heparin || _hpPaused ; + hpInitial_bolus ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_INITIAL_BOLUS ); _heparin = _heparin || _hpInitial_bolus ; + hpDispensing ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_DISPENSING ); _heparin = _heparin || _hpDispensing ; + hpCompleted ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_COMPLETED ); _heparin = _heparin || _hpCompleted ; + hpEmpty ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_EMPTY ); _heparin = _heparin || _hpEmpty ; + emit heparinChanged(_heparin); // Treatment states // Treatment states - Basics Index: sources/view/hd/data/treatment/VHDTreatmentStatesData.h =================================================================== diff -u -r79e076cece4ba503be6c3834eb68d1e5cb1b882f -rdf0329c47627ceb1fe460cda2ae3ff8c9c851106 --- sources/view/hd/data/treatment/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision 79e076cece4ba503be6c3834eb68d1e5cb1b882f) +++ sources/view/hd/data/treatment/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision df0329c47627ceb1fe460cda2ae3ff8c9c851106) @@ -93,6 +93,7 @@ PROPERTY( bool , hpDispensing , false) ///< HEPARIN_STATE_DISPENSING = 4 # Gradual heparin dispensing in progress PROPERTY( bool , hpCompleted , false) ///< HEPARIN_STATE_COMPLETED = 5 # Heparin delivery stopped due to the set stop time before treatment end PROPERTY( bool , hpEmpty , false) ///< HEPARIN_STATE_EMPTY = 6 # Heparin Syringe empty + PROPERTY( bool , heparin , false) ///< The heparin state is an asynchronous state // Rinseback States PROPERTY( bool , rbInit , true ) ///< RINSEBACK_STOP_INIT_STATE = 0 # Start state (stopped) of the rinseback sub-mode state machine