Index: suite_leahi/shared/scripts/configuration/config.py =================================================================== diff -u -rf26ea87587e4b5be8fb20c83c3e824a19cf9cc04 -rc091cb2bd9bd4b20538496aa27435e8c8cf39e7a --- suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision f26ea87587e4b5be8fb20c83c3e824a19cf9cc04) +++ suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision c091cb2bd9bd4b20538496aa27435e8c8cf39e7a) @@ -1,10 +1,7 @@ -# -S, --disable-sd-card-fail-log-stop disable-sd-card-fail-log-stop -# -k, --enable-check-in-log Enables Check-In Log -# -K, --enable-acknow-log Enables Acknowledgment Log +#Solution Infusion +TOTAL_FLUID_DELIVERED = "Total Fluid Delivered" +DELIVERING_FLUID = "Delivering Fluid" -AUT_NAME = "leahi -k -K -S -q" -AUT_NAME_ONLY = "leahi" # Need only the AUT name for tst_ui_logs, do not add options - # Configuration application_init.py TMP_DIR = "/tmp/" APP_POST_LOG_LOCATION = "".join([str(TMP_DIR),'/post.log']) @@ -24,10 +21,10 @@ "TD Serial Number", "DD Version", "DD FPGA Version", "DD Serial Number", ] #Device Settings Information Version -INFORMATION_SCREEN_TITLE_TEXT = "Information" -INFORMATION_TITLES = ["Information", "Versions"] +INFORMATION_SCREEN_TITLE_TEXT = "Device Information" +INFORMATION_TITLES = ["Versions", "Service"] VERSION_PARAMETERS = [ - "Information", "UI Version", "TD Version", "TD FPGA Version", + "OS Version", "UI Version", "TD Version", "TD FPGA Version", "TD Serial Number", "DD Version", "DD FPGA Version", "DD Serial Number" ] SERVICES_PARAMETERS = [ @@ -36,6 +33,7 @@ ] SERIVCES_TITLE = "Service" WATER_PARAMETERS = ["Water Configuration", "Water Input"] + # General Alarm Requirements Instruction NUM_OF_ALARM_PRIORITIES = 4 # Total number of alarm priorities ALARM_MUTE_FLAG = 0B0000001000000000 @@ -46,26 +44,32 @@ 2 : 'ALARM_PRIORITY_MEDIUM', 3 : 'ALARM_PRIORITY_HIGH', } +MUTE = "Mute" +UMMUTE = "UnMute" +IMAGE_BELLOFF_STATE = "/images/iBellOff" +IMAGE_BELLON_STATE = "/images/iBellOn" +ALARMS_COLORS_HEADER = { + "ALARM_PRIORITY_NONE" : "#438feb", + "ALARM_PRIORITY_LOW" : "#db8f00", + "ALARM_PRIORITY_MEDIUM" : "#db8f00", + "ALARM_PRIORITY_HIGH" : "#c53b33" +} +BLUE_COLOR = "#18559e" +ALARM_REJECT_NOTIFICATION_TEMPLATE = "No Active Alarm List [{}]" +ALARM_TREATMENT_BLOOD_STOP_COUNTDOWN_DESCRIPTION = "Return Blood will not be allowed in:" + #HeaderBar WiFi WIFI_POPUP_TEXT = "WiFi Connection Error" +WIFI_IMAGE = "/images/iWifi" # Device Settings WiFi WIFI_TEXT = "Wi-Fi" WIFI_PARAMETERS_TEXTS = ["SSID", "IP Address", "Gateway", "Subnet Mask", "DNS"] WIFI_SCREEN_SCAN_BUTTON_TEXT = "SCAN" DISABLED = False -ALARMS_COLORS_HEADER = { - "ALARM_PRIORITY_NONE" : "#438feb", - "ALARM_PRIORITY_LOW" : "#db8f00", - "ALARM_PRIORITY_MEDIUM" : "#db8f00", - "ALARM_PRIORITY_HIGH" : "#c53b33" -} -ALARM_REJECT_NOTIFICATION_TEMPLATE = "No Active Alarm List [{}]" - #Create Rx -#Create Rx ACID_CONCENTRATE = ["1.0 K, 2.50 Ca","2.0 K, 2.50 Ca","3.0 K, 2.50 Ca"] DIALYZER_TYPE = ["Diacap Pro 13H","Diacap Pro 16H", "Diacap Pro 19H", "Optiflux F160NRe", "Optiflux F180NRe", "Optiflux F200NRe","Optiflux F250NRe"] VITALS = ["OFF","5","10","15","20","30","60"] @@ -88,8 +92,126 @@ COMPLETE = 'Complete' HEPARIN = "Heparin" CREATERX = "Rx" -VALIDATE = "Validate" -CONFIRM = "Confirm" +VALIDATE = "VALIDATE" +CONFIRM = "CONFIRM" NEXT ="Next" +SYSTOLIC = "Systolic" +DIASTOLIC = "Diastolic" +HEARTRATE = "Heart Rate" +# Settings Service +CONFIGURATIONS_PATH = "Public/luis/config/configurations/" +DEFAULT_SERVICE_PASSWORD_RAW = "Atal.Matal.22leh" # TODO need to update if we ever change the default +NEW_PASSWORD_RAW = "Test4.Ksah.sk43sa" +MANUFACTURING_SCREEN_TITLE_TEXT = "Manufacturing Setup" +SERVICE_SCREEN_TITLE_TEXT = "Service" +ADVANCED_MODES_SCREEN_TITLE_TEXT = "Advanced Mode" +DATE_AND_TIME_SCREEN_TITLE_TEXT = "Date and Time" +TIME = "Time" +DATE_AND_TIME_PARAMETERS_TEXTS = ["NTP", "(Network Time Protocol)", "Time", "(HH:mm:ss)", "Date", "(MM/dd/yyyy)"] +ENABLE_ROOT_SSH_SCREEN_TITLE_TEXT = "Enable Root SSH" +ENABLE_ROOT_SSH_PARAMETERS_TEXTS = ["Enable SSH Login", "Enable Root Login"] +FACTORY_RESET_SCREEN_TITLE_TEXT = "Factory Reset" +FACTORY_RESET_SCREEN_TEXT = "Do you want to perform the factory reset?" +SET_PASSWORD = "Set Password" + +#ultrafiltration +MAX_UF_VOLUME = 10.00 +MAX_UF_RATE = 10.00 +MAX_VOLUME_DELIVERED = 8.00 + +MIN_SYSTOLIC = "60" +MIN_DIASTOLIC = "40" +MIN_HEARTRATE = "40" +#Blood Set Auto Load +CONTINUE = "Continue" + +MAX_SYSTOLIC = "250" +MAX_DIASTOLIC = "200" +MAX_HEARTRATE = "180" +SYSTOLIC_251 = "251" +DIASTOLIC_201 = "201" +HEARTRATE_181 = "181" +SYSTOLIC_59 = "59" +DIASTOLIC_39 = "39" +HEARTRATE_39 = "39" +RED_COLOR = "#c53b33" +#Feature Options +FEATURE_CONFIGURATIONS_SCREEN_TITLE_TEXT = "Feature Configurations" +FEATURE_CONFIGURATIONS_PARAMETERS_TEXTS = ["Integrated BP Cuff", "Heparin Syringe Pump", "Chemical Disinfection"] +MEASURE_VITALS = "Measure Vitals" + +# Service Institutional +INSTITUTIONAL_CONFIGURATIONS_SCREEN_TITLE_TEXT = "Institutional Configurations" +ADVANCED_INSTITUTIONAL_SETTINGS_SCREEN_TITLE_TEXT = "Advanced Institutional Settings" +ADVANCED_INSTITUTIONAL_SETTINGS_NOTIFICATION_TEXT = "Advanced Institutional records and preferences updated" +INSTITUTIONAL_SETTINGS_NOTIFICATION_TEXT = "Institutional records and preferences updated" +ERROR_ADVANCED_INSTITUTIONAL_SETTINGS_NOTIFICATION_TEXT = "Error Adjusting Advanced Institutional Records" +ERROR_INSTITUTIONAL_SETTINGS_NOTIFICATION_TEXT = "Error Adjusting Institutional Records" + +#Device Settings Options +DEVICE_SETTINGS = "Device Settings" +ADVANCED_MODE = "Advanced Mode" +DEVICE_INFORMATION = "Device Information" +WI_FI = "Wi-Fi" +DEVICE_CLEANING = "Device Cleaning" +SERVICE = "Service" +EXPORT_LOGS = "Export Logs" +VOLUME_AND_BRIGHTNESS = "Volume And Brightness" +FEATURE_CONFIGURATIONS = "Feature Configurations" +ADVANCED_INSTITUTIONAL_SETTINGS = "Advanced Institutional Settings" +FACTORY_RESET = "Factory Reset" +ENABLE_ROOT_SSH = "Enable Root SSH" +INSTITUTIONAL_CONFIGURATIONS = "Institutional Configurations" +DATE_AND_TIME = "Date and Time" +LANGUAGE = "Language" +# Blood Prime +TOTAL_FLUID_DELIVERED = "Total Fluid Delivered" +DELIVERING_FLUID = "Delivering Fluid" +BLOOD_PRIME_PAUSED_NOTIFICATION = "Blood Prime Paused" + + +# Pre-Treatment Foundation +SELF_TESTS_PAGE_CONTENTS = [ + "Auto-Load Blood Tube Set", + "Blood Tube Set Verification", + "Pressure Leak Check", +] +PRIME_PAGE_CONTENTS = ["Blood Tubing Circuit Priming", "Dialysate Circuit Priming"] + +#Recirculate +RECIRCULATE_SET_UP = "Recirculate Set Up" +RECIRCULATE_IN_PROGRESS = "Recirculate In Progress" +RECIRCULATION_COUNTDOWN_DESCRIPTION_TEXT = "Recirculation Time Elapsed:" +RECONNECT_TO_PATIENT = "Reconnect To Patient" +END_TREATMENT = "End Treatment" + + +#General Aesthetics +SD_CARD_SECTION_CONTENTS = ["SD-Card", "0.000 MB Used", "0.000 Free MB of 0.000 MB"] +OPMODE_TITLE = " Opmode " +OPMODE = 'opMode ' +SUBMODE = 'subMode ' +TX_STATES = ' TXStates ' +MID_UF_VOLUME = 5.00 +MID_UF_RATE = 5.00 +MID_VOLUME_DELIVERED = 4.00 + +ULTRAFILTRATION_VOLUME = "Ultrafiltration Volume (L)" +UF_VOLUME_REMOVED = "UF Volume Removed" +UF_VOLUME_GOAL = "UF Volume Goal" +NEW_UF_VOLUME = "New UF Volume" +NEW_UF_RATE = "New UF Rate" + + +MAX_NEW_UF_VOLUME = 8.0 +MAX_NEW_UF_RATE = 2.0 + +#Rinseback +BLOOD_RETURN_SETUP = "Blood Return Setup" +RINSEBACK_PAUSED = "Rinseback Paused" +BLOOD_RETURN_COUNTDOWN_DESCRIPTION_TEXT = "Blood return will NOT be allowed in:" +BLOOD_RETURN_COMPLETE = "Blood Return Complete!" + + Index: suite_leahi/shared/scripts/configuration/navigation.py =================================================================== diff -u -rb29968830a0ad7bfb6b1711404ece8e3f6b656eb -rc091cb2bd9bd4b20538496aa27435e8c8cf39e7a --- suite_leahi/shared/scripts/configuration/navigation.py (.../navigation.py) (revision b29968830a0ad7bfb6b1711404ece8e3f6b656eb) +++ suite_leahi/shared/scripts/configuration/navigation.py (.../navigation.py) (revision c091cb2bd9bd4b20538496aa27435e8c8cf39e7a) @@ -3,82 +3,33 @@ import test from leahi_dialin.ui.td_messaging import TD_Messaging from leahi_dialin.common.td_defs import TDOpModes, TDStandbyStates -from configuration import config, utility -from configparser import ConfigParser -from pathlib import Path +from configuration import config, utility,application_init +from configparser import ConfigParser +from pathlib import Path td_simulator = TD_Messaging() - + def navigate_to_device_settings_screen(): """ - Method to navigate to "Service" screen + Method to navigate to "Device Settings" screen and Compare Device Settings screen title text """ td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) - settings_menu_object = utility.get_object_from_names( - names.o_Settings_Menu, - error_message="Settings menu object missing", - timeout_ms=1000, - ) - if settings_menu_object is not None: - squish.mouseClick(settings_menu_object) + main_menu_container = squish.waitForObject(names.o_mainMenu_MainMenu, 2000) + squish.mouseClick(utility.findChildByText(main_menu_container, config.SETTINGS)) - device_setting_screen_title_text = utility.get_object_from_names( - names.o_DeviceSettingsTitleText, - error_message="Device Settings Screen title text object missing", - timeout_ms=2000, + headerbar_container = squish.waitForObject(names.o_headerBar_HeaderBar, 2000) + device_setting_screen_headerbar_title_text = utility.findChildByText( + headerbar_container, config.DEVICE_SETTINGS ) - if device_setting_screen_title_text is not None: + if device_setting_screen_headerbar_title_text is not None: test.compare( - device_setting_screen_title_text.text, + device_setting_screen_headerbar_title_text.text, config.DEVICE_SETTINGS_SCREEN_TITLE_TEXT, "{} screen is displayed and Comparison of Device Settings Screen Title text".format( config.DEVICE_SETTINGS_SCREEN_TITLE_TEXT ), ) -def navigate_to_device_settings_using_service_password(): - td_simulator.td_operation_mode(TDOpModes.MODE_SERV.value, 0) - grid_container = squish.waitForObject(names.o_DeviceSettingsGrid) - service_option = utility.findChildByText(grid_container, "Service") - - if service_option is not None: - squish.mouseClick(service_option) - - headerbar_container = squish.waitForObject(names.o_headerBar_HeaderBar) - service_screen_headerbar_title_text = utility.findChildByText( - headerbar_container, "Service" - ) - if service_screen_headerbar_title_text is not None: - test.compare( - service_screen_headerbar_title_text.text, - config.SERVICE_SCREEN_TITLE_TEXT, - "{} screen is displayed and Comparison of Device Settings Screen Title text".format( - config.SERVICE_SCREEN_TITLE_TEXT - ), - ) - input_field = squish.waitForObject(names.o_userConfirmation_TextInput, 1000) - - squish.type(input_field, config.DEFAULT_SERVICE_PASSWORD_RAW) - confirm_button = squish.waitForObject(names.o_userConfirmation_ConfirmButton, 1000) - squish.mouseClick(confirm_button) - -def get_ini_value(conf_path: str , section: str, key: str): - """ - Method to get the advanced option from the System.conf file - """ - path = Path(conf_path) - if not path.exists(): - raise FileNotFoundError(f"Not found: {path}") - parser = ConfigParser() - # Preserve case if needed: - # parser.optionxform = str - parser.read(path, encoding="utf-8") - if not parser.has_section(section): - raise KeyError(f"Section [{section}] not found in {path}") - if not parser.has_option(section, key): - raise KeyError(f"Key '{key}' not found in section [{section}]") - return parser.get(section, key) - def navigation_pageIndicator_step(vStep_name): """ Navigate to the specified page using the step indicator component. @@ -91,18 +42,9 @@ """ test.startSection("Method to navigation in the pretreatment page ") stepId = squish.waitForObjectExists(names.o_preTreatmentStack_stepIndicator_StepIndicator) - stepnames = utility.findAllObjectsById(stepId, "_text") - value = get_ini_value("/home/denali/Public/luis/config/configurations/Settings/System.conf", section ="AdvancedMode", key ="AdvancedMode") - standard = stepnames[1:] - if value == "0": - standard = stepnames[3:] - Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) - squish.mouseClick(squish.waitForObject(Nextbutton)) - - autoLoadbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text ="Auto Load") - squish.mouseClick(squish.waitForObject(autoLoadbutton)) - td_simulator.td_blood_set_auto_load_response(vRejectionReason = 0) - for input_field in standard: + values = utility.findAllObjectsById(stepId, "_text") + for index, input_field in enumerate(values[2:]): + test.log(str(index)); test.log(str(input_field.text)) if str(input_field.text) == "Water Sample": squish.mouseClick(squish.waitForObject(names.o_PreTreatmentSampleStack_button_TouchRect)) @@ -113,4 +55,5 @@ Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) squish.mouseClick(Nextbutton) - test.endSection() \ No newline at end of file + test.endSection() + \ No newline at end of file Index: suite_leahi/shared/scripts/configuration/utility.py =================================================================== diff -u -rf26ea87587e4b5be8fb20c83c3e824a19cf9cc04 -rc091cb2bd9bd4b20538496aa27435e8c8cf39e7a --- suite_leahi/shared/scripts/configuration/utility.py (.../utility.py) (revision f26ea87587e4b5be8fb20c83c3e824a19cf9cc04) +++ suite_leahi/shared/scripts/configuration/utility.py (.../utility.py) (revision c091cb2bd9bd4b20538496aa27435e8c8cf39e7a) @@ -6,10 +6,15 @@ from leahi_dialin.ui import utils from datetime import datetime from leahi_dialin.ui.td_messaging import TD_Messaging -from configuration import config, navigation +from leahi_dialin.common.td_defs import TDOpModes,TDTreatmentStates +from configuration import config, navigation +from leahi_dialin.ui import utils +from builtins import int as pyInt td =TD_Messaging() - +from leahi_dialin.ui import utils +from builtins import int as pyInt + def get_object_from_names(names_dict, error_message = "Missing object", timeout_ms = 200): """ To get an object with try..except catching to prevent script errors when the object is not found on the GUI @@ -20,7 +25,7 @@ return squish.waitForObject(names_dict, timeout_ms) except LookupError: test.fail("ERROR : " + error_message) - return None + return None def get_bullet_object(screen_obj, num): """ @@ -43,7 +48,7 @@ names.o_text_object["text"] = txt return names.o_text_object -def setObjectText(text,obj): +def setObjectText(obj,text): """ Method to set object property based on text @param text : (string) treatment parameter text @@ -73,7 +78,10 @@ found = findChildByText(child, target_text) if found: return found - + + return None + + def set_value_based_on_target(obj, target_value): """ obj: dictionary containing object paths @@ -97,7 +105,7 @@ # Read current value (supports invisible text too) - current_value = round(float(squish.findObject(obj).value),1) + current_value = round(float(squish.waitForObject(obj).value), 1) # Determine direction while current_value != float(target_value): @@ -107,12 +115,13 @@ elif current_value > float(target_value): squish.mouseClick(squish.waitForObject(left_arrow)) - current_value = round(float(squish.findObject(obj).value),1) + current_value = round(float(squish.waitForObject(obj).value), 1) test.log(f"Updated value: {current_value}") - test.log(f"✅ Target value reached: {current_value}") + test.log(f"✅ Target value reached: {current_value}") + def select_different_dropdown(object,type,whichTypeIndex): """ Selects a value from a dropdown using a doc string. @@ -136,16 +145,14 @@ set_value_based_on_target(names.o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster, 60) set_value_based_on_target(names.o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster, 75) set_value_based_on_target(names.o_PreTreatmentCreate_durationControl_ValueAdjuster, 75) - heparinValue =navigation.get_ini_value("/home/denali/Public/luis/config/configurations/Settings/System.conf", section ="Feature Configurations", key ="HeparinSyringePump") - if heparinValue == "1": - set_value_based_on_target(names.o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, 0.4) - set_value_based_on_target(names.o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, 0.5) - set_value_based_on_target(names.o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, 60) + set_value_based_on_target(names.o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, 0.4) + set_value_based_on_target(names.o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, 0.5) + set_value_based_on_target(names.o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, 60) select_different_dropdown(names.o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox,config.ACID_CONCENTRATE,2) set_value_based_on_target(names.o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster,37.0) select_different_dropdown(names.o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox,config.DIALYZER_TYPE,2) set_value_based_on_target(names.o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster, 200) - set_value_based_on_target(names.o_PreTreatmentCreate_bpMeasurementIntervalControl_ValueAdjusterCustom,1) + select_different_dropdown(names.o_PreTreatment_vitalsCombobox_BaseCombobox,config.VITALS,1) select_different_dropdown(names.o_PreTreatmentCreate_bicarbonateConcentrateComboBox_BaseComboBox,config.BICARBONATE,0) Validatebutton = setObjectText(obj = names.o_preTreatmentStack_Text, text =config.VALIDATE) squish.mouseClick(squish.waitForObject(Validatebutton)) @@ -169,9 +176,10 @@ vDialysateTempRejectReason = 0, vHeparinDispensingRateRejectReason = 0, vHeparinBolusVolumeRejectReason = 0 - ) - confirm = squish.waitForObjectExists(names.o_preTreatmentStack_confirmButton_ConfirmButton, 3000) - squish.mouseClick(confirm) + ) + + confirmButton = setObjectText(obj = names.o_preTreatmentStack_Text,text = config.CONFIRM ) + squish.mouseClick(squish.waitForObject(confirmButton)) test.endSection() def findAllObjectsById(parent, target_id): @@ -190,15 +198,19 @@ results.extend(findAllObjectsById(child, target_id)) return results + + + + def set_value_with_slider(value_field_obj, slider_obj,parameter): """ Opens the slider and moves it gradually to the target value (step of 10). Uses controlled arrow key input for fine adjustment. """ try: - value_field = waitForObject(value_field_obj,1000) + value_field = squish.waitForObject(value_field_obj,1000) test.log(f"Opening slider for {parameter}...") squish.mousePress(value_field, squish.Qt.LeftButton) value = value_field.value @@ -211,10 +223,10 @@ if not object.exists(slider_obj): test.fail(f"{parameter}: Slider did not appear.") - slider = waitForObject(slider_obj) + slider = squish.waitForObject(slider_obj) test.log(f"{parameter}: Slider appeared successfully.") squish.mousePress(slider,squish.Qt.LeftButton) - final_value = waitForObject(value_field_obj).value + final_value = squish.waitForObject(value_field_obj).value test.verify(final_value!= value, f"{parameter} slider adjusted correctly to {final_value}") squish.mouseRelease(slider, squish.Qt.LeftButton) if object.exists(slider_obj): @@ -241,6 +253,17 @@ utils.waitForGUI(0.2) # Small delay to allow UI to update return None + +def get_row_object(screen_obj, num): + """ + To obtain a row object based on occurrence provided. + @param screen_obj: provides the container on which the row must be present + @param num: provides the occurrence value (0-based index) + @returns a real name object + """ + names.o_Row_Object["container"] = screen_obj + names.o_Row_Object["occurrence"] = num + 1 + return names.o_Row_Object def get_object_color(names_dict, error_message = "Missing object color", timeout_ms = 2000): """ @@ -252,8 +275,8 @@ return squish.waitForObject(names_dict, timeout_ms).color.name except LookupError: test.fail("ERROR : " + error_message) - return None + def get_object_source_path(names_dict, error_message = "Missing object source path", timeout_ms = 2000): """ To get an object source path with try..except catching to prevent script errors when the object is not found on the GUI @@ -262,9 +285,9 @@ """ try: return squish.waitForObject(names_dict, timeout_ms).source.path - except LookupError: - return None + except LookupError: test.fail("ERROR : " + error_message) + return None def get_object_text(names_dict, error_message = "Missing object text", timeout_ms = 2000): """ @@ -276,4 +299,82 @@ return squish.waitForObject(names_dict, timeout_ms).text except LookupError: test.fail("ERROR : " + error_message) - return None \ No newline at end of file + return None + +def findAllObjectsByText(parent, target_text): + """ + Recursively finds all child objects that have a 'text' property + matching the target_text. Returns a list of matches. + """ + results = [] + # Use hasattr to safely check for 'text' property before comparing + if hasattr(parent, 'text') and str(parent.text) == target_text: + results.append(parent) + + # Recurse through all children + for child in object.children(parent): + results.extend(findAllObjectsByText(child, target_text)) + + return results + +def verify_create_treatment_parameters(): + test.startSection("Pre treatment parameters") + navigation.navigation_pageIndicator_step(config.CREATERX) + squish.mouseClick(squish.waitForObject(names.o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry)) + squish.waitForObject(names.o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry).text ="abcd" + set_value_based_on_target(names.o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster, 60) + set_value_based_on_target(names.o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster, 75) + set_value_based_on_target(names.o_PreTreatmentCreate_durationControl_ValueAdjuster, 75) + heparinValue =navigation.get_ini_value("/home/denali/Public/luis/config/configurations/Settings/System.conf", section ="Feature Configurations", key ="HeparinSyringePump") + if heparinValue == "1": + set_value_based_on_target(names.o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, 0.4) + set_value_based_on_target(names.o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, 0.5) + set_value_based_on_target(names.o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, 60) + select_different_dropdown(names.o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox,config.ACID_CONCENTRATE,2) + select_different_dropdown(names.o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox,config.DIALYZER_TYPE,2) + set_value_based_on_target(names.o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster, 200) + set_value_based_on_target(names.o_PreTreatmentCreate_bpMeasurementIntervalControl_ValueAdjusterCustom,5.0) + select_different_dropdown(names.o_PreTreatmentCreate_bicarbonateConcentrateComboBox_BaseComboBox,config.BICARBONATE,0) + Validatebutton = setObjectText(obj = names.o_preTreatmentStack_Text, text =config.VALIDATE) + squish.mouseClick(squish.waitForObject(Validatebutton)) + td.td_Treatment_Parameters_Validation( vAccepted = 1, + vBloodFlowRateRejectReason = 0, + vDialysateFlowRateRejectReason = 0, + vTreatmentDurationRejectReason = 0, + vSalineBolusVolumeRejectReason = 0, + vHeparinStopTimeRejectReason = 0, + vHeparinTypeRejectReason = 0, + vAcidConcentrateRejectReason = 0, + vBicarbonateConcentrateRejectReason = 0, + vDialyzerTypeRejectReason = 0, + vBloodPressureMeasureIntervalRejectReason = 0, + vRinsebackFlowRateRejectReason = 0, + vRinsebackVolumeRejectReason = 0, + vArterialPressureLimitWindowRejectReason = 0, + vVenousPressureLimitWindowRejectReason = 0, + vVenousPressureLimitAsymtrcRejectReason = 0, + vTransmembranePressureLimitWindowRejectReason = 0, + vDialysateTempRejectReason = 0, + vHeparinDispensingRateRejectReason = 0, + vHeparinBolusVolumeRejectReason = 0 + ) + confirm = squish.waitForObjectExists(names.o_preTreatmentStack_confirmButton_ConfirmButton, 3000) + squish.mouseClick(confirm) + test.endSection() + +def findAllObjectsById(parent, target_id): + """ + Recursively finds all child objects by their id property. + Returns a list of all matching objects found. + """ + results = [] + + # Use hasattr to safely check for 'id' property + if hasattr(parent, 'id') and str(parent.id) == target_id: + results.append(parent) + + # Recurse through all children to collect all instances + for child in object.children(parent): + results.extend(findAllObjectsById(child, target_id)) + + return results Index: suite_leahi/shared/scripts/names.py =================================================================== diff -u -rf26ea87587e4b5be8fb20c83c3e824a19cf9cc04 -rc091cb2bd9bd4b20538496aa27435e8c8cf39e7a --- suite_leahi/shared/scripts/names.py (.../names.py) (revision f26ea87587e4b5be8fb20c83c3e824a19cf9cc04) +++ suite_leahi/shared/scripts/names.py (.../names.py) (revision c091cb2bd9bd4b20538496aa27435e8c8cf39e7a) @@ -6,6 +6,8 @@ o_Gui_MainView = { "type": "Gui::MainView", "unnamed": 1 } o_QQuickView = { "type": "QQuickView" } o_Overlay = {"container": o_QQuickView, "type": "Overlay" } +o_mainMenu_MainMenu = {"container": o_Gui_MainView, "id": "_mainMenu", "type": "MainMenu", "unnamed": 1 } +o_headerBar_HeaderBar = {"container": o_Gui_MainView, "id": "_headerBar", "type": "HeaderBar", "unnamed": 1 } # Solution Infusion o_standByScreen_MainHome = {"container": o_Gui_MainView, "type": "MainHome" } @@ -36,8 +38,11 @@ o_dialyste_flow_title_Text = {"container": mainTreatmentScreen, "objectName": "dialysateFlowComponent", "type": "TreatmentFlowsComponent" } o_dialyste_tmp_title_Text = {"container": mainTreatmentScreen, "id": "_dialysateTemp", "objectName": "dialysateTempComponent", "type": "TreatmentFlowsComponent" } o_dialyste_cond_title_Text = {"container": mainTreatmentScreen, "id": "_dialysateCond", "objectName": "dialysateCondComponent", "type": "TreatmentFlowsComponent" } -o_treatmentTimeNotificationBarSmall = {"container": mainTreatmentScreen, "objectName": "notification", "type": "NotificationBarSmall" } - + +o_newTreatmentDuration_ValueAdjuster = {"container": o_Overlay, "objectName": "_valueAdjuster", "type": "ValueAdjuster", } +o_newTreatmentDuration = {"container": o_Overlay, "objectName": "_newTreatmentDuration", "type": "LabelUnitText", } +o_Popup_CloseButton = {"container": o_Overlay, "id": "_closeButton", "type": "CloseButton", "unnamed": 1 } + # settings_service_export_logs o_listView_ListView = {"container": o_Gui_MainView, "id": "_listView", "type": "ListView", "unnamed": 1 } o_listView_delegateControl = {"container": o_listView_ListView, "index": 2, "objectName": "delegateControl", "type": "Item" } @@ -59,26 +64,31 @@ o_InformationIconButton = {"container": o_Gui_MainView, "id": "_informationButton", "type": "IconButton", "unnamed": 1 } o_InformationParameters = {"container": o_Overlay, "type": "Text", "unnamed": 1 } o_VersionColumn = {"container": o_Overlay, "id": "_versionColumn", "type": "Column", "unnamed": 1 } -# General Alarm Requirements Instruction -o_AlarmButton_Mute = {"container": o_Overlay, "id": "_muteButton", "type": "MuteButton" } -o_AlarmButton_Mute_Min = {"container": o_AlarmButton_Mute, "id": "_hourText", "type": "Text" } -o_AlarmButton_Mute_Sec = {"container": o_AlarmButton_Mute, "id": "_minuteText", "type": "Text" } -o_AlarmButton_Mute_Img = {"container": o_AlarmButton_Mute, "id": "_image", "type": "Image", "unnamed": 1 } -o_Alarm_Bar = {"container": o_QQuickView, "id": "_alarmBar", "type": "NotificationBar" } -o_Alarm_Bar_Mute_Img = {"container": o_Alarm_Bar, "id": "_image", "type": "Image" } -o_Alarm_Bar_Mute_Min = {"container": o_Alarm_Bar, "id": "_hourText", "type": "Text" } -o_Alarm_Bar_Mute_Sec = {"container": o_Alarm_Bar, "id": "_minuteText", "type": "Text" } -o_AlarmsList_IconButton = {"container": o_Overlay, "id": "_alarmsList", "type": "IconButton", "unnamed": 1 } -o_AlarmButton_Minimize = {"container": o_Overlay, "id": "_minMaxButton", "type": "ArrowButton", "unnamed": 1 } -o_AlarmButton_Maximize = {"container": o_Gui_MainView, "id": "_minMaxButton", "type": "ArrowButton", "unnamed": 1 } -o_Alarm_Dialog_TitleBar = {"container": o_Overlay , "id": "_titleBar", "type": "Rectangle" } -o_Alarm_List = {"container": o_Overlay, "id": "_grid", "type": "Grid" } -o_AlarmReject_Notification_Description_Text = {"container": o_Overlay, "objectName": "_NotificationDialog_Description", "type": "Text" } -o_Alarm_Ok_Button = {"container": o_Overlay, "id": "_okTouchRect", "type": "TouchRect", "unnamed": 1 } -o_Alarm_Resume_Button = {"container": o_Overlay, "id": "_resumeTouchRect", "type": "TouchRect", "unnamed": 1 } -o_Alarm_Rinseback_Button = {"container": o_Overlay, "id": "_rinsebackTouchRect", "type": "TouchRect", "unnamed": 1 } -o_Alarm_End_Treatment_Button = {"container": o_Overlay, "id": "_endTouchRect", "type": "TouchRect", "unnamed": 1 } - + +# General Alarm Requirements Instruction +o_AlarmButton_Mute = {"container": o_Overlay, "id": "_muteButton", "type": "MuteButton", } +o_AlarmButton_Mute_Min = {"container": o_AlarmButton_Mute, "id": "_hourText", "type": "Text", } +o_AlarmButton_Mute_Sec = {"container": o_AlarmButton_Mute, "id": "_minuteText", "type": "Text", } +o_AlarmButton_Mute_Img = {"container": o_AlarmButton_Mute, "id": "_image", "type": "Image", "unnamed": 1 } +o_Alarm_Minimized_hour_Text = {"container": o_Gui_MainView, "objectName": "_TimeText_hour", "type": "Text", "visible": True } +o_Alarm_Minimized_minute_Text = {"container": o_Gui_MainView, "objectName": "_TimeText_minute", "type": "Text", "visible": True } +#The 'visible' property is required here and This allows Squish to correctly find the object and get its text +o_Alarm_Minimized_Mute_Img = {"container": o_Gui_MainView, "id": "_image", "source": "qrc:/images/iBellOff", "type": "Image", "unnamed": 1 } +o_Alarm_Minimized_Unmute_Img = {"container": o_Gui_MainView, "id": "_image", "source": "qrc:/images/iBellOn", "type": "Image", "unnamed": 1 } +o_Alarm_titleBar_Rectangle = {"container": o_Overlay, "id": "_titleBar", "type": "Rectangle", "unnamed": 1 } +o_AlarmsList_IconButton = {"container": o_Overlay, "id": "_alarmsList", "type": "IconButton", "unnamed": 1 } +o_AlarmButton_Minimize = {"container": o_Overlay, "id": "_minMaxButton", "type": "ArrowButton", "unnamed": 1 } +o_AlarmButton_Maximize = {"container": o_Gui_MainView, "id": "_minMaxButton", "type": "ArrowButton", "unnamed": 1 } +o_Alarm_Dialog_TitleBar = {"container": o_Overlay, "id": "_titleBar", "type": "Rectangle", } +o_Alarm_List = {"container": o_Overlay, "id": "_grid", "type": "Grid", } +o_AlarmReject_Notification_Description_Text = {"container": o_Overlay, "objectName": "_NotificationDialog_Description", "type": "Text", } +o_Alarm_Ok_Button = {"container": o_Overlay, "id": "_okTouchRect", "type": "TouchRect", "unnamed": 1 } +o_Alarm_Resume_Button = {"container": o_Overlay, "id": "_resumeTouchRect", "type": "TouchRect", "unnamed": 1 } +o_Alarm_Rinseback_Button = {"container": o_Overlay, "id": "_rinsebackTouchRect", "type": "TouchRect", "unnamed": 1 } +o_Alarm_End_Treatment_Button = {"container": o_Overlay, "id": "_endTouchRect", "type": "TouchRect", "unnamed": 1 } +o_Alarm_timerRect_Rectangle = {"container": o_Overlay, "id": "_timerRect", "type": "Rectangle", "unnamed": 1 } +o_Alarm_temporaryBreak_Button = {"container": o_Overlay, "id": "_temporaryBreak", "type": "TouchRect", "unnamed": 1 } + #ultrafiltration o_treatmentUltrafiltration = {"container": mainTreatmentScreen, "objectName": "treatmentUltrafiltration", "type": "TreatmentUltrafiltration" } o_editButton_ultrafiltration_IconButton = {"container": o_treatmentUltrafiltration, "id": "_editButton", "type": "IconButton", "unnamed": 1 } @@ -90,16 +100,22 @@ o_editButton_TouchRect = {"container": o_Overlay, "objectName": "_editButton", "type": "TouchRect" } o_volumeGoalAdjuster_ValueAdjuster = {"container": o_Overlay, "objectName": "_volumeGoalAdjuster", "type": "ValueAdjuster" } o_continueButton_TouchRect = {"container": o_Overlay, "objectName": "_continueButton", "type": "TouchRect" } -o_newVolumeContainer_ValueContainer = {"container": o_Overlay, "objectName": "_newVolumeContainer", "type": "ValueContainer" } -o_newRateContainer_ValueContainer = {"container": o_Overlay, "objectName": "_newRateContainer", "type": "ValueContainer" } +o_left_LabelUnitText = {"container": o_Overlay, "objectName": "_left", "type": "LabelUnitText" } +o_right_LabelUnitText = {"container": o_Overlay, "objectName": "_right", "type": "LabelUnitText" } o_confirmButton_TouchRect = {"container": o_Overlay, "objectName": "_confirmButton", "type": "TouchRect" } o_backButton_BackButton = {"container": o_Overlay, "id": "_backButton", "type": "BackButton", "unnamed": 1 } o_notificationBar_NotificationBarSmall = {"container": o_Overlay, "objectName": "NotificationBar", "type": "NotificationBarSmall" } o_title_Text = {"container": o_Overlay, "type": "Text", "unnamed": 1 } +o_ufVolumeGoal = {"container": o_Overlay, "objectName": "_ufVolumeGoal", "type": "LabelUnitText", } +o_ufRate = {"container": o_Overlay, "objectName": "_ufRate", "type": "LabelUnitText", } +o_ultrafiltration_pauseResumeButton_TouchRect = {"container": o_Overlay, "objectName": "_pauseResumeButton", "type": "TouchRect", } +o_PopupItem = {"container": o_Overlay, "type": "PopupItem", "unnamed": 1 } +o_treatmentHome_ultrafiltration_status = {"container": mainTreatmentScreen, "id": "_statusItem", "type": "Item", "unnamed": 1 } +o_Popup_CloseButton = {"container": o_Overlay, "id": "_closeButton", "type": "CloseButton", "unnamed": 1 } + # Device Settings Information Version o_DeviceSettingsInformation = {"container": o_SettingsHome, "id": "_touchItem", "type": "TouchRect", "unnamed": 1 } -o_InformationPageTitleText = {"container": o_SettingsInformation, "id": "_titleText", "type": "Text", "unnamed": 1 } o_SettingsBase_SettingsInformation = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsBase" } o_SettingsBase_Information_Text = {"container": o_SettingsBase_SettingsInformation, "type": "Text", "unnamed": 1 } o_SettingsBase_SettingsInformation_2 = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsInformation" } @@ -112,9 +128,6 @@ o_HeaderBar_WiFi_IconImage = {"container": o_Gui_MainView, "id": "_iconImage", "source": "qrc:/images/iWifi", "type": "Image", "unnamed": 1 } #Device Settings Wi-Fi -o_SettingsBase_SettingsInformation = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsBase" } -o_SettingsBase_Information_Text = {"container": o_SettingsBase_SettingsInformation, "type": "Text", "unnamed": 1 } -o_InformationPageTitleText = {"container": o_SettingsInformation, "id": "_titleText", "type": "Text", "unnamed": 1 } o_SettingsBase_SettingsWiFi = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsWiFi" } o_SettingsBase_WifiScreen_ScanButton = {"container": o_SettingsBase_SettingsWiFi, "id": "_scanButton", "type": "TouchRect", "unnamed": 1 } o_SettingsBase_WifiScreen_BackButton = {"container": o_SettingsBase_SettingsWiFi, "objectName": "_backButton", "type": "BackButton" , } @@ -124,43 +137,56 @@ o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate = {"container": o_PreTreatmentCreateStack_PreTreatmentCreateStack, "objectName": "_PreTreatmentCreate", "type": "PreTreatmentCreate" , } o_bullet_object = { "type": "StepBullet", "unnamed": 1 } o_text_object = { "type": "Text", "unnamed": 1 } -o_PreTreatmentCreate_gridSteps_Grid = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_gridSteps", "type": "Grid", "unnamed": 1 } -o_PreTreatmentCreate_bloodFlowRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PatientIDEntry_TextEntry = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } -o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_durationControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_durationControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRateControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_heparinDispensingRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRate", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_heparinDispensingRateControl_OffText = {"container": o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, "type": "Text", "unnamed": 1 } -o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTimeControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperatureControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } -o_PreTreatmentCreate_heparinBolusVolume_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_heparinBolusVolume_Off_Text = {"container": o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, "type": "Text", "unnamed": 1 } -o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerTypeComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_preTreatmentStack_PreTreatmentStack = {"container": o_Gui_MainView, "id": "_preTreatmentStack", "type": "PreTreatmentStack", "unnamed": 1 } +o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate = {"container": o_preTreatmentStack_PreTreatmentStack, "objectName": "_PreTreatmentCreate", "type": "PreTreatmentCreate" } +o_PreTreatmentCreate_gridSteps_Grid = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_gridSteps", "type": "Grid", "unnamed": 1 } +o_PreTreatmentCreate_bloodFlowRate_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PatientIDEntry_TextEntry = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } +o_PreTreatmentCreate_heparinDispensingRate_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolume_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolume_Off_Text = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerTypeComboBox", "type": "BaseComboBox", "unnamed": 1 } o_saveButton_TouchRect = {"container": o_Overlay, "id": "_saveButton", "type": "TouchRect", "unnamed": 1 } -o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } -o_PreTreatmentCreate_acidConcentrate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } -o_acidConcentrate_editbutton = {"container": o_PreTreatmentCreate_acidConcentrate_LabelUnitContainer, "id": "_editButton", "type": "IconButton", "unnamed": 1 } +o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_acidConcentrate_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } +o_acidConcentrate_editbutton = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_editButton", "type": "IconButton", "unnamed": 1 } o_PreTreatmentCreate_acidConcentrate_Popup_Text = {"container": o_Overlay, "type": "TitleText", "unnamed": 1 } -o_PreTreatmentCreate_qrCode_Image = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_qrCode", "type": "Image", "unnamed": 1 } -o_PreTreatmentButton = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "objectName": "_confirmButton", "type": "ConfirmButton", } -o_prescription_menuButton = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_prescriptionMenu", "type": "BaseComboBox", "unnamed": 1 } -o_PreTreatmentCreate_dialysateFlowRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_duration_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_duration", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_heparinStopTime_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTime", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_heparinStopTime_OFF_Text = {"container": o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, "type": "Text", "unnamed": 1 } -o_PreTreatmentCreate_bicarbonateConcentrate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_dialyzerType_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerType", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_dialysateTemperature_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperature", "type": "LabelUnitContainer", "unnamed": 1 } -o_PreTreatmentCreate_salineBolusVolume_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_qrCode_Image = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_qrCode", "type": "Image", "unnamed": 1 } +o_PreTreatmentButton = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "objectName": "_confirmButton", "type": "ConfirmButton", } +o_prescription_menuButton = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_prescriptionMenu", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_dialysateFlowRate_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_duration_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_duration", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinStopTime_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTime", "type": "LabelUnitContainer", "unnamed": 1 } +# o_PreTreatmentCreate_heparinStopTime_OFF_Text = {"container": o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_bicarbonateConcentrate_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_dialyzerType_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerType", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_dialysateTemperature_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperature", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_salineBolusVolume_LabelUnitContainer = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } o_potassium_LabelUnitContainer = {"container": o_Overlay, "id": "_potassium", "type": "LabelUnitContainer", "unnamed": 1 } o_potassium_leftArrow_IconButton = {"container": o_potassium_LabelUnitContainer, "id": "_leftArrow", "type": "IconButton", "unnamed": 1 } o_calcium_LabelUnitContainer = {"container": o_Overlay, "id": "_calcium", "type": "LabelUnitContainer", "unnamed": 1 } o_calcium_leftArrow_IconButton = {"container": o_calcium_LabelUnitContainer, "id": "_leftArrow", "type": "IconButton", "unnamed": 1 } o_option_combo_box = {"container": o_Overlay, "type": "Text", "unnamed": 1 } + +o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } +o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_durationControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_durationControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTimeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperatureControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_bicarbonateConcentrateComboBox_BaseComboBox= {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_createTreatmentRect_TouchRect = {"container": o_standByScreen_MainHome, "id": "_createTreatmentRect", "type": "TouchRect", "unnamed": 1 } +o_PreTreatment_vitalsCombobox_BaseCombobox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerTypeComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } +o_preTreatmentStack_Text = {"container": o_preTreatmentStack_PreTreatmentStack, "type": "Text", "unnamed": 1 } +o_preTreatmentStack_stepIndicator_StepIndicator = {"container": o_preTreatmentStack_PreTreatmentStack, "id": "_stepIndicator", "type": "StepIndicator", "unnamed": 1 } +o_PreTreatmentCreate_bpMeasurementIntervalControl_ValueAdjusterCustom= {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "ValueAdjusterCustom", "unnamed": 1 } + o_PreTreatmentCreate_bloodFlowRate_slider_Slider = {"container": o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } o_PreTreatmentCreate_dialysateFlowRate_slider_Slider = {"container": o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } o_PreTreatmentCreate_duration_slider_Slider = {"container": o_PreTreatmentCreate_durationControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } @@ -193,18 +219,15 @@ o_qrCode_Image = {"container": o_Overlay, "id": "_qrCode", "type": "Image", "unnamed": 1 } o_preTreatmentStack_PreTreatmentStack = {"container": o_Gui_MainView, "id": "_preTreatmentStack", "type": "PreTreatmentStack", "unnamed": 1 } o_preTreatmentStack_PreTreatmentBase_PreTreatmentBase = {"container": o_preTreatmentStack_PreTreatmentStack, "objectName": "_PreTreatmentBase", "type": "PreTreatmentBase" } -o_PreTreatmentBase_instructionView_InstructionView = {"container": o_preTreatmentStack_PreTreatmentBase_PreTreatmentBase, "id": "_instructionView", "type": "InstructionView", "unnamed": 1 } +o_PreTreatmentBase_instructionView_InstructionView = {"container": o_preTreatmentStack_PreTreatmentBase_PreTreatmentBase, "id": "_instructionView", "type": "InstructionView", "unnamed": 1 } - #Heparin o_listView_Item = {"container": o_Gui_MainView, "type": "Item", "unnamed": 1 } o_treatmentHeparin_TreatmentHeparin = {"container": o_Gui_MainView, "id": "_treatmentHeparin", "type": "TreatmentHeparin", "unnamed": 1 } o_treatmentHeparin_Prescription_Column = {"container": o_treatmentHeparin_TreatmentHeparin, "id": "_heparinPrescriptionContent", "type": "Column", "unnamed": 1 } o_treatmentHeparin_heparinButton_TouchRect = {"container": o_treatmentHeparin_TreatmentHeparin, "id": "_heparinButton", "type": "TouchRect", "unnamed": 1 } o_treatmentHeparin_status_Rectangle = {"container": o_treatmentHeparin_TreatmentHeparin, "id": "_status", "type": "Rectangle", "unnamed": 1 } -o_createTreatmentRect_TouchRect = {"container": o_standByScreen_MainHome, "id": "_createTreatmentRect", "type": "TouchRect", "unnamed": 1 } o_option_combo_box = {"container": o_Overlay, "type": "Text", "unnamed": 1 } -o_preTreatmentStack_PreTreatmentStack = {"container": o_Gui_MainView, "id": "_preTreatmentStack", "type": "PreTreatmentStack", "unnamed": 1 } o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate = {"container": o_preTreatmentStack_PreTreatmentStack, "objectName": "_PreTreatmentCreate", "type": "PreTreatmentCreate" } o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } @@ -216,14 +239,40 @@ o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperatureControl", "type": "ValueAdjuster", "unnamed": 1 } o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } o_PreTreatmentCreate_bicarbonateConcentrateComboBox_BaseComboBox= {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } -o_createTreatmentRect_TouchRect = {"container": o_standByScreen_MainHome, "id": "_createTreatmentRect", "type": "TouchRect", "unnamed": 1 } +o_createTreatmentRect_TouchRect = {"container": o_standByScreen_MainHome, "id": "_createTreatmentRect", "type": "TouchRect", "unnamed": 1 } o_PreTreatment_vitalsCombobox_BaseCombobox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "BaseComboBox", "unnamed": 1 } o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerTypeComboBox", "type": "BaseComboBox", "unnamed": 1 } o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry = {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } o_preTreatmentStack_Text = {"container": o_preTreatmentStack_PreTreatmentStack, "type": "Text", "unnamed": 1 } o_preTreatmentStack_stepIndicator_StepIndicator = {"container": o_preTreatmentStack_PreTreatmentStack, "id": "_stepIndicator", "type": "StepIndicator", "unnamed": 1 } + +#Helpers +o_SettingsStack_SettingsStack = {"container": o_Gui_MainView, "objectName": "_SettingsStack", "type": "SettingsStack", } +o_UserConfirmation_SettingsServicePassword = {"container": o_SettingsStack_SettingsStack, "objectName": "UserConfirmation", "type": "SettingsServicePassword", } +o_loginPage_Titletext = {"container": o_UserConfirmation_SettingsServicePassword, "id":"_titleText", "type": "Text", "unnamed": 1 } +o_userConfirmation_TextInput = {"container": o_UserConfirmation_SettingsServicePassword, "id": "_input", "type": "TextInput", "unnamed": 1 } +o_userConfirmation_ConfirmButton = {"container": o_UserConfirmation_SettingsServicePassword, "objectName": "_confirmButton", "type": "ConfirmButton", } +o_PreTreatmentSampleStack_PreTreatmentWaterSample = {"container": o_preTreatmentStack_PreTreatmentStack, "objectName": "_PreTreatmentSampleStack", "type": "PreTreatmentWaterSample", } +o_PreTreatmentSampleStack_button_TouchRect = {"container": o_PreTreatmentSampleStack_PreTreatmentWaterSample, "id": "_button", "type": "TouchRect", "unnamed": 1 } +o_preTreatmentStack_repeater_Repeater = {"container": o_preTreatmentStack_PreTreatmentStack, "id": "repeater", "type": "Repeater", "unnamed": 1 } o_PreTreatmentCreate_bpMeasurementIntervalControl_ValueAdjusterCustom= {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "ValueAdjusterCustom", "unnamed": 1 } +o_PostTreatmentStack_PostTreatmentStack = {"container": o_Gui_MainView, "objectName": "_PostTreatmentStack", "type": "PostTreatmentStack", } +o_SettingsBase_SettingsAdvancedMode = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsAdvancedMode", } +o_settingsAdvancedMode_BaseSwitch = {"container": o_SettingsBase_SettingsAdvancedMode, "id": "_settingsAdvancedMode", "type": "BaseSwitch", "unnamed": 1 } +o_SettingsBase_backButton_AdvancedMode = {"container": o_SettingsBase_SettingsAdvancedMode, "objectName": "_backButton", "type": "BackButton", } +o_preTreatmentStack_pretreatmentInstallation_PreTreatmentInstallStack= {"container": o_preTreatmentStack_PreTreatmentStack, "id": "_pretreatmentInstallation", "type": "PreTreatmentInstallStack", "unnamed": 1 } +o_pretreatmentInstallation_PreTreatmentBase_PreTreatmentBase = {"container": o_preTreatmentStack_pretreatmentInstallation_PreTreatmentInstallStack, "objectName": "_PreTreatmentBase", "type": "PreTreatmentBase", } +o_pretreatmentInstallation_instructionView_InstructionView = {"container": o_pretreatmentInstallation_PreTreatmentBase_PreTreatmentBase, "id": "_instructionView", "type": "InstructionView", "unnamed": 1 } + +# Feature Options +o_SettingsBase_SettingsFeatureConfigurations = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsFeatureConfigurations", } +o_SettingsBase_integratedBPCuffSwitch_BaseSwitch = {"checkable": True, "container": o_SettingsBase_SettingsFeatureConfigurations, "id": "_integratedBPCuffSwitch", "type": "BaseSwitch", "unnamed": 1 } +o_SettingsFeatureConfigurations_BackButton = {"container": o_SettingsBase_SettingsFeatureConfigurations, "objectName": "_backButton", "type": "BackButton", } +o_SettingsBase_heparinSyringePumpSwitch_BaseSwitch = {"checkable": True, "container": o_SettingsBase_SettingsFeatureConfigurations, "id": "_heparinSyringePumpSwitch", "type": "BaseSwitch", "unnamed": 1 } +o_vitalsButton_VitalsButton = {"container": o_Gui_MainView, "id": "_vitalsButton", "type": "VitalsButton", "unnamed": 1 } +o_vitalsPopup_Close_Image = {"container": o_Overlay, "id": "_image", "source": "qrc:/images/iClose", "type": "Image", "unnamed": 1 } +o_PreTreatmentCreate_bpMeasurementIntervalControl_ValueAdjusterCustom= {"container": o_preTreatmentStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "ValueAdjusterCustom", "unnamed": 1 } o_preTreatmentStack_confirmButton_ConfirmButton = {"container": o_preTreatmentStack_PreTreatmentStack, "objectName": "_confirmButton", "type": "ConfirmButton", "visible": True } o_waterSample_IconButton = {"container": o_Gui_MainView, "id": "_waterSample", "type": "IconButton", "unnamed": 1 } @@ -241,6 +290,3 @@ o_dialsateTemperatureContainer_LabelUnitContainer = {"container": o_Overlay, "objectName": "_dialsateTemperatureContainer", "type": "LabelUnitContainer" } o_actualRORejectionPercentageContainer_LabelUnitContainer = {"container": o_Overlay, "objectName": "_actualRORejectionPercentageContainer", "type": "LabelUnitContainer" } o_createHDTreatment_TouchRect = {"container": o_standByScreen_MainHome, "id": "_createHDTreatment", "type": "TouchRect", "unnamed": 1 } - - -