# -*- coding: utf-8 -*- ## # Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. # copyright # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, # IN PART OR IN WHOLE, # WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # file tst_Treatment_BloodDialysateFlowRate # date 2020/02/15 # author Joseph varghese # import names from dialin.ui import utils from dialin.ui.hd_simulator import HDSimulator from configuration import config def set_rejection_message(text): if isinstance(text, pyStr): names.o_treatment_notification_bar["text"] = text return names.o_treatment_notification_bar else: test.log(f"Invalid \"text\": " +text+" for object.") names.o_treatment_notification_bar["text"] = None def verify_flow_rate(expected_blood_flow_value = "_", expected_dialysate_flow_rate = "_"): """ Tests to verify blood dialysate rate on main treatment screen @input: expected_blood_flow_value - expected blood flow rate @input: expected_dialysate_flow_rate - expected dialysate flow rate """ test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_rate).label), str(expected_blood_flow_value)) test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_rate).label), str(expected_dialysate_flow_rate)) def verify_blood_dialysate_adjustment(expected_blood_flow_value = "_", expected_dialysate_flow_rate = "_"): """ Tests to verify blood dialysate rate on flow adjustment screen @input: expected_blood_flow_value - expected blood flow rate @input: expected_dialysate_flow_rate - expected dialysate flow rate """ test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_adjustment).label), str(expected_blood_flow_value)) test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_adjustment).label), str(expected_dialysate_flow_rate)) def drag_and_drop_blood_dialysate_slider(slider_value): """ Tests to verify blood dialysate slider range @input: slider_value - value of the slider to set. """ mouseClick(waitForObject(names.o_blood_flow_slider), slider_value, 4, Qt.LeftButton) current_slider_value = int(waitForObject(names.o_blood_flow_slider).value) test.compare(current_slider_value , slider_value, "user adjusted slider value to -> "+ str(slider_value)) def test_treatment_blood_dialysate_rejection(hd): test.startSection("verification of blood dialysate rejection message") mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) for rejection in range(1, config.NUM_OF_REQUEST_REJECT_REASONS + 1): hd.cmd_send_treatment_adjust_blood_dialysate_response(accepted = False, reason= rejection, blood_rate = 180, dialysate_flow_rate = 120) verify_blood_dialysate_adjustment(expected_blood_flow_value = 180, expected_dialysate_flow_rate = 120) rejection_message = findObject(names.o_treatment_notification_bar) test.compare(rejection_message.text, config.REJECTION_MESSAGE[rejection], "expected rejection message") utils.waitForGUI(0.5) test.endSection() def test_treatment_adjustment_blood_dialysate(): test.startSection("verification of blood dialysate adjustment") for slider_value in (275, 300, 325): drag_and_drop_blood_dialysate_slider(slider_value) test.compare((waitForObject(names.o_blood_flow_minimum_value).text), config.BLOOD_FLOW_MINIMUM_VALUE, "minimum blood flow value verified") test.compare((waitForObject(names.o_blood_flow_maximum_value).text), config.BLOOD_FLOW_MAXIMUM_VALUE, "maximum blood flow value verified") test.compare((waitForObject(names.o_dialysate_flow_minimum_value).text), config.DIALYSATE_FLOW_MINIMUM_VALUE, "minimum dialysate flow value verified") test.compare((waitForObject(names.o_dialysate_flow_maximum_value).text), config.DIALYSATE_FLOW_MAXIMUM_VALUE, "maximum dialysate flow value verified") test.endSection() def test_blood_flow_rate_and_dialysate(hd): test.startSection("verification of blood flow range and dialysate range on" + \ "main treatment screen") hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 100, measured_flow = 0, rot_speed = 0, mot_speed = 0, mc_speed = 0, mc_current = 0, pwm = 0, signal_strength = 0) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 100) hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 125, measured_flow = 1, rot_speed = 1, mot_speed = 1, mc_speed = 1, mc_current = 1, pwm = 1, signal_strength = 1) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 125) hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 175, measured_flow = 1.45, rot_speed = 1.45, mot_speed = 1.45, mc_speed = 1.45, mc_current = 1.45, pwm = 1.45, signal_strength = 1.45) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 175) hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 600, measured_flow = 4, rot_speed = 6, mot_speed = 15, mc_speed = 24, mc_current = 6.25, pwm = 12, signal_strength = 8) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 600) hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 225, measured_flow = 1, rot_speed = 1, mot_speed = 1, mc_speed = 1, mc_current = 1, pwm = 1, signal_strength = 1) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 225 ) hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 500, measured_flow = 110, rot_speed = 125, mot_speed = 135, mc_speed = 145, mc_current = 125, pwm = 185, signal_strength = 155) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 500 ) mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) verify_blood_dialysate_adjustment(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 500) mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 425, measured_flow = 4.25, rot_speed = 1.25, mot_speed = 9, mc_speed = 1.25, mc_current = 12, pwm = 1.25, signal_strength = 1.25) hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 350, measured_flow = 0, rot_speed = 125, mot_speed = 1.25, mc_speed = 1.25, mc_current = 1, pwm = 5, signal_strength = 10) utils.waitForGUI() #delay for fetching effect verify_flow_rate(expected_blood_flow_value = 425, expected_dialysate_flow_rate = 350) mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) verify_blood_dialysate_adjustment(expected_blood_flow_value = 425, expected_dialysate_flow_rate = 350) mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) test.endSection() def main(): utils.tstStart(__file__) startApplication(config.AUT_NAME) hd = HDSimulator() utils.waitForGUI() #navigate to In-treatment section hd.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=1, heparin_state= 0, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 2, treatment_end_state=0, treatment_stop_state= 0) utils.waitForGUI() #delay for fetching effect test_blood_flow_rate_and_dialysate(hd) test_treatment_blood_dialysate_rejection(hd) test_treatment_adjustment_blood_dialysate() utils.tstDone()