def setUp(self):
     self.driver.get(MOB_LOGIN)
     self.login_page = LoginPage(self.driver)
     self.task_list_page = ListPage(self.driver)
     self.patient_list_page = ListPage(self.driver)
     self.login_page.login(NURSE_USERNM1, NURSE_PWD1)
     self.task_list_page.go_to_task_list()
def check_task_list(context):
    patient_name = context.patient_name
    task_page = ListPage(context.browser)
    task_list = [
        task.find_element(*TASK).text for task in task_page.get_list_items()
        if task.find_element(*LIST_ITEM_PATIENT_NAME).text == patient_name
    ]
    for row in context.table:
        assert (row.get('tasks') in task_list)
def check_no_notifications(context):
    patient_name = context.patient_name
    page_confirm = PageConfirm(context.browser)
    task_page = ListPage(context.browser)
    task_page.go_to_task_list()
    assert (page_confirm.is_task_list_page())
    task_list = [
        task.find_element(*TASK).text for task in task_page.get_list_items()
        if task.find_element(*LIST_ITEM_PATIENT_NAME).text == patient_name
    ]
    assert (len(task_list) == 0)
 def setUp(self):
     self.driver.get(MOB_LOGIN)
     self.login_page = LoginPage(self.driver)
     self.list_page = ListPage(self.driver)
     self.patient_page = PatientPage(self.driver)
     self.login_page.login(NURSE_USERNM1, NURSE_PWD1)
     self.list_page.go_to_patient_list()
     patients = self.list_page.get_list_items()
     patient_to_test = patients[0]
     self.patient_url = patient_to_test.get_attribute('href')
     self.driver.get(self.patient_url)
Exemple #5
0
 def setUp(self):
     self.driver.get(MOB_LOGIN)
     self.login_page = LoginPage(self.driver)
     self.list_page = ListPage(self.driver)
     self.task_page = TaskPage(self.driver)
     self.login_page.login(NURSE_USERNM1, NURSE_PWD1)
     self.list_page.go_to_task_list()
     tasks = self.list_page.get_list_items()
     task_to_test = tasks[0]
     self.task_url = task_to_test.get_attribute('href')
     self.driver.get(self.task_url)
Exemple #6
0
    def setUp(self):
        self.driver.get(MOB_LOGIN)
        self.login_page = LoginPage(self.driver)
        self.list_page = ListPage(self.driver)
        self.patient_page = PatientPage(self.driver)
        self.login_page.login(NURSE_USERNM1, NURSE_PWD1)
        self.list_page.go_to_patient_list()
        patients = self.list_page.get_list_items()
        patient_to_test = patients[0]
        self.patient_url = patient_to_test.get_attribute('href')
        patient_id = self.patient_url.replace(PATIENT_PAGE, '')
        self.patient_page.remove_observations_for_patient(int(patient_id))
        self.driver.get(self.patient_url)

        ui.WebDriverWait(self.driver, 5).until(
            ec.visibility_of_element_located(GRAPH_CHART))
def check_next_ews(context, time, period):
    patient_name = context.patient_name
    page_confirm = PageConfirm(context.browser)
    task_page = ListPage(context.browser)
    task_page.go_to_patient_list()
    assert (page_confirm.is_patient_list_page())
    task_list = [
        task.find_element(*LIST_ITEM_DEADLINE).text
        for task in task_page.get_list_items()
        if task.find_element(*LIST_ITEM_PATIENT_NAME).text == patient_name
    ]
    assert (len(task_list) == 1)
    time_range = range(int(time) - 1, int(time) + 1)
    if period == 'minutes':
        assert (int(task_list[0][3:][:2]) in time_range)
    else:
        assert (int(task_list[0][:2]) in time_range)
    def setUp(self):
        self.driver.get(MOB_LOGIN)
        self.login_page = LoginPage(self.driver)
        self.list_page = ListPage(self.driver)
        self.patient_page = PatientPage(self.driver)
        self.patient_page_graph = PatientPageGraphs(self.driver)

        risk_mapping = {
            'none': self.patient_page.add_no_risk_observation,
            'low': self.patient_page.add_low_risk_observation,
            'medium': self.patient_page.add_medium_risk_observation,
            'high': self.patient_page.add_high_risk_observation,
            '3in1': self.patient_page.add_three_in_one_observation
        }
        self.login_page.login(NURSE_USERNM1, NURSE_PWD1)
        self.list_page.go_to_patient_list()
        patients = self.list_page.get_list_items()
        patient_to_test = patients[0]
        patient_id = patient_to_test.get_attribute('href').replace(
            PATIENT_PAGE, '')

        self.patient_page.remove_observations_for_patient(int(patient_id))
        risk_mapping[self.risk](int(patient_id))
        self.driver.get(patient_to_test.get_attribute('href'))
        ui.WebDriverWait(self.driver, 5).until(
            ec.visibility_of_element_located((By.CSS_SELECTOR, '#chart svg')))

        self.patient_page.change_to_table()
        obs_table = self.patient_page.get_obs_table()
        rows = self.patient_page.get_table_rows(obs_table)[1:]

        self.row_data = []
        for row in rows:
            self.row_data.append(self.patient_page.get_table_data(row))

        self.patient_page_graph.change_to_chart()

        # Focus Graphs
        focus_graphs = self.patient_page_graph.get_focus_graphs()
        self.assertEqual(len(focus_graphs), 5, 'Incorrect number of graphs')
        self.graph_list = []

        for graph in focus_graphs:
            self.graph_list.append(graph)

        self.graph_data = self.get_graph_data()
def submit_observation(context, clinical_risk):

    risk_dict = {
        'no': NO_RISK_EWS_DATA,
        'a low': LOW_RISK_SCORE_1_EWS_DATA,
        'a medium': MEDIUM_RISK_SCORE_5_EWS_DATA,
        'a high': HIGH_RISK_SCORE_7_EWS_DATA
    }
    risk_score = risk_dict.get(clinical_risk)
    if not risk_score:
        raise ValueError('No risk score available')

    page_confirm = PageConfirm(context.browser)
    patient_list_page = ListPage(context.browser)

    patient_list_page.go_to_patient_list()
    assert(page_confirm.is_patient_list_page())
    patients = patient_list_page.get_list_items()

    PatientPage(context.browser).select_patient(patients)
    PatientPage(context.browser).open_form(OPEN_OBS_MENU_NEWS_ITEM)
    ObservationFormPage(context.browser).enter_obs_data(risk_score)
def submit_extended_obs(context, risk, stay_duration):

    durations = {
        '1-2': 1,
        '3+': 5
    }
    risk_triggered_acts = {
        'no': [],
        'a low': [
            'nh.clinical.notification.assessment',
            'nh.clinical.notification.hca',
            'nh.clinical.notification.nurse'
        ],
        'a medium': [
            'nh.clinical.notification.hca',
            'nh.clinical.notification.nurse',
            'nh.clinical.notification.shift_coordinator',
            'nh.clinical.notification.medical_team',
            'nh.clinical.notification.ambulance'
        ],
        'a high': [
            'nh.clinical.notification.hca',
            'nh.clinical.notification.nurse',
            'nh.clinical.notification.shift_coordinator',
            'nh.clinical.notification.medical_team',
            'nh.clinical.notification.ambulance'
        ]
    }

    spell_model = context.odoo_client.model('nh.clinical.spell')
    page_confirm = PageConfirm(context.browser)
    patient_list_page = ListPage(context.browser)

    patient_list_page.go_to_patient_list()
    assert(page_confirm.is_patient_list_page())
    patients = patient_list_page.get_list_items()

    patient = patients[0]
    patient_id = patient.get_attribute('href').replace(
        PATIENT_PAGE, ''
    )
    patient_name = patient.find_element(*LIST_ITEM_PATIENT_NAME)
    context.patient_name = patient_name.text
    spell_id = spell_model.get_by_patient_id(int(patient_id))
    tasks_to_cancel = risk_triggered_acts.get(risk)
    if tasks_to_cancel:
        patient_list_page.remove_tasks_for_patient(
            patient_id, tasks_to_cancel, database=context.test_database_name)
    present = datetime.now()
    days_ago = timedelta(days=durations.get(stay_duration))
    new_date = present - days_ago
    new_date_str = new_date.strftime('%Y-%m-%d %H:%M:00')
    spell_model.write(spell_id, {
        'date_started': new_date_str,
        'start_date': new_date_str,
    })
    read_date = spell_model.read(spell_id, ['date_started', 'start_date'])
    assert(read_date['date_started'] == new_date_str)
    assert(read_date['start_date'] == new_date_str)
    time.sleep(1)
    submit_observation(context, risk)