Esempio n. 1
0
def main_menu(user: Usuario) -> str:
    dao = None
    try:
        dao = GenericSQLDAO(database_type=PostgreSQLHelper)
        dao.database.query("SELECT COUNT(checkin_id_) FROM notificacao_view "
                           "WHERE checkin_id_usuario=%s "
                           "AND notificacao_recebida=FALSE;",
                           [user.id_])
        notificacoes = dao.database.get_results()[0][0]
    except:
        pass
    finally:
        if dao:
            dao.close()
    if notificacoes > 0:
        print(f"{bcolors.WARNING}{bcolors.BOLD} Você tem "
              f"{notificacoes} notificações!{bcolors.ENDC}")
    print(f"{bcolors.HEADER}{bcolors.BOLD}"
          f"O que você gostaria de fazer?"
          f"{bcolors.ENDC}\n")
    for key, action in actions.items():
        print(f"\t{key} - {action.get('name', '...')}")
    action = input(">> ").strip()
    if action not in actions.keys():
        raise ValueError(action)
    return action
Esempio n. 2
0
def view_hospitais(page: int):
    dao = None
    try:
        dao = GenericSQLDAO(database_type=PostgreSQLHelper)
        dao.database.query("SELECT * "
                           "FROM hospitais_view LIMIT %s OFFSET %s",
                           (itens_per_page, page*itens_per_page)
                           )
        results = dao.database.get_results()
        dao.database.query("SELECT COUNT(*) "
                           "FROM hospitais_view"
                           )
        total = dao.database.get_results()[0][0]
        pages = (total - 1) // itens_per_page
        if pages < 0:
            pages = 0
        if page > pages:
            system("clear")
            print(f"{bcolors.WARNING}A página {page} não está disponível,"
                  f" mostrando a última página disponível.{bcolors.ENDC}")
            return pages
        print(f"{bcolors.OKBLUE}{bcolors.BOLD}"
              f"Hospital"
              f"{bcolors.ENDC}\n")
        print(f"{bcolors.OKCYAN}"
              f"|{'Nome':^30}|{'Internações':^20}|{'Médicos':^20}|{'Relação I/M':^20}|"
              f"{bcolors.ENDC}")
        for result in results:
            print(f"|{result[0]:^30}|"
                  f"{result[1] if result[1] else 0:^20}"
                  f"|{result[2] if result[2] else 0:^20}"
                  f"|{result[3] if result [3] else 0:^20.2f}|")
        for i in range(itens_per_page - len(results)):
            print(f"|{'-':^30}|{'-':^20}"
                  f"|{'-':^20}"
                  f"|{'-':^20}|")
        print("\n\t  ", end="")
        for i in range(pages + 1):
            print(i, end=' ')
        print("\n", "\t", " " * page * 2, '^')
        print("Pressione <- ou -> para navegar entre as páginas")
        print("Pressione x para sair da listagem")
        option = ''
        while option != 'x':
            option = getch()
            if option == '[':
                option = getch()
                if option == "C":
                    system("clear")
                    return page + 1 if page + 1 <= pages else page
                if option == "D":
                    system("clear")
                    return page - 1 if page > 0 else page
        system("clear")
        return option
    except Exception as e:
        system("clear")
        print(f"{bcolors.FAIL}Não foi possível listar os hospitais... "
              f"Tente novamente. {e}{bcolors.ENDC}")
        input()
    finally:
        if dao:
            dao.close()
    return page
Esempio n. 3
0
def view_relatorio_diagnostico_internacoes(page: int):
    dao = None
    try:
        dao = GenericSQLDAO(database_type=PostgreSQLHelper)
        system("clear")
        dao.database.query(
            "SELECT * "
            "FROM internacoes_diagnostico "
            "LIMIT %s OFFSET %s;", (itens_per_page, (page * itens_per_page)))
        results = dao.database.get_results()
        dao.database.query("SELECT COUNT(usuario_id_) "
                           "FROM internacoes_diagnostico;")
        total = dao.database.get_results()[0][0]
        pages = (total - 1) // itens_per_page
        if pages < 0:
            pages = 0
        if page > pages:
            system("clear")
            print(f"{bcolors.WARNING}A página {page} não está disponível,"
                  f" mostrando a última página disponível.{bcolors.ENDC}")
            return pages
        print(f"{bcolors.OKBLUE}{bcolors.BOLD}"
              f"Internações:"
              f"{bcolors.ENDC}\n")
        print(f"{bcolors.OKCYAN}"
              f"|{'Usuário':^34}|{'Dt. Sint.':^10}|{'Dt. Exame':^10}"
              f"|{'Internação':^10}|{'Hospital':^20}|{'UTI':^3}"
              f"|{'Data Alta':^10}|{'Dt. Recu.':^10}|"
              f"{bcolors.ENDC}")
        for result in results:
            print(
                f"|{result[0]:^34}"
                f"|{result[1].strftime(datetime_format):^10}"
                f"|{result[2].strftime(datetime_format):^10}"
                f"|{result[3].strftime(datetime_format) if result[3] else '-':^10}"
                f"|{result[4] if result[4] else '-':^20}"
                f"|{'s' if result[5] is True else 'n':^3}"
                f"|{result[6].strftime(datetime_format) if result[6] else '-':^10}"
                f"|{result[7].strftime(datetime_format) if result[7] else '-':^10}|"
            )
        for i in range(itens_per_page - len(results)):
            print(f"|{'-':^34}"
                  f"|{'-':^10}"
                  f"|{'-':^10}"
                  f"|{'-':^10}"
                  f"|{'-':^20}"
                  f"|{'-':^3}"
                  f"|{'-':^10}"
                  f"|{'-':^10}|")
        print("\n\t  ", end="")
        for i in range(pages + 1):
            print(i, end=' ')
        print("\n", "\t", " " * page * 2, '^')
        print("Pressione <- ou -> para navegar entre os locais")
        print("Pressione s para confirmar a seleção de um local")
        print("Pressione x para cancelar e sair da listagem")
        option = ''
        while option != 'x':
            option = getch()
            if option == '[':
                option = getch()
                if option == "C":
                    system("clear")
                    return page + 1 if page + 1 <= pages else page
                if option == "D":
                    system("clear")
                    return page - 1 if page > 0 else page
        system("clear")
        return option
    except Exception as e:
        system("clear")
        print(f"{bcolors.FAIL}Não foi possível listar as notificações... "
              f"Tente novamente. {e}{bcolors.ENDC}")
        input()
    finally:
        if dao:
            dao.close()
    return page