예제 #1
0
def getUsers():
    try:
        db = Database()

        return db.selectAllData(AdmSaude)
    except:
        return [] 
예제 #2
0
def getPacientes():
    try:
        db = Database()

        return db.selectAllData(Paciente)
    except:
        return []
예제 #3
0
def getTimes():
    db = Database()
    times = db.selectAllData(TempoContatoAcompanhamento)
    if len(times) == 0:
        return 48, 16
    times = times[0]
    return times["intervalo_contato"], times["tempo_maximo_acompanhamento"]
예제 #4
0
def getEsf(id_cidade=None):
    db = Database()

    if id_cidade is not None:
        return db.selectAllDataByFilter(EstrategiaSaudeFamiliar,
                                        id_cidade=id_cidade)

    return db.selectAllData(EstrategiaSaudeFamiliar)
예제 #5
0
def getPacientes(id_cidade=None):
    try:
        db = Database()

        if id_cidade is not None:
            return db.selectAllDataByFilter(Paciente, id_cidade = id_cidade)

        return db.selectAllData(Paciente)
    except:
        return []
예제 #6
0
def getUsers(id_cidade=None):
    try:
        db = Database()

        if (id_cidade is not None):
            return db.selectAllDataByFilter(AdmSaude, id_cidade=id_cidade)

        return db.selectAllData(AdmSaude)
    except:
        return []
예제 #7
0
def updatePaciente(id, nome, cpf, telefone, id_etnia, id_genero, dataNasc,
                   endereco):

    db = Database()

    paciente = Paciente(
        nome, cpf, telefone,
        datetime.strptime(dataNasc, '%Y-%m-%d').date()
        if len(dataNasc) != 0 else None, id_etnia, id_genero, endereco)
    paciente.id = id

    db.updateData(Paciente, paciente, id)
예제 #8
0
def selectPaciente():
    pacientes = []

    try:
        db = Database()
        response = db.selectAllData(Paciente)
        for paciente in response:
            pacientes.append(paciente)
    except Exception as e:
        print(e)

    print(pacientes)
예제 #9
0
def updatePaciente(id, nome, cpf, cns, telefone, id_etnia, id_genero, dataNasc, endereco, id_cidade=None):
    db = Database()

    if id_cidade is None:
        id_cidade = getPaciente(id).id_cidade

    paciente = Paciente(nome, cpf, cns, telefone,
                        dataNasc,
                        id_etnia, id_genero, endereco, id_cidade)
    paciente.id = id

    db.updateData(Paciente, paciente, id)
예제 #10
0
def updateUser(id, name, crm, cpf, supervisor, senha=None, id_cidade=None):

    db = Database()

    adm = None
    if senha is None:
        adm = AdmSaude(name, crm, cpf, supervisor, id_cidade=id_cidade)

    else:
        adm = AdmSaude(name, crm, cpf, supervisor, senha, id_cidade)

    adm.id = id
    db.updateData(AdmSaude, adm, id)
예제 #11
0
def getTimes(id_cidade=None):
    db = Database()

    if (id_cidade is not None):
        times = db.selectAllDataByFilter(TempoContatoAcompanhamento,
                                         id_cidade=id_cidade)
    else:
        times = db.selectAllData(TempoContatoAcompanhamento)

    if len(times) == 0:
        return 48, 16
    times = times[0]
    return times["intervalo_contato"], times["tempo_maximo_acompanhamento"]
예제 #12
0
    def finalizarPersistencia(self, id_adm_saude, id_paciente):  # Cadastra o atendimento e o agendamento

        db = Database()

        # Finaliza o cadastro do atendimento e recupera o id salvo
        db.saveData(self.atendimento)
        id_atendimento = db.selectIf(Atendimento, id_paciente=self.atendimento.id_paciente,
                                     data=self.atendimento.data).id

        # Para cada relacionamento salvo, insere o ID do atendimento e cadastra
        for rel in self.relations:
            self.insertRelation(rel, id_atendimento)

        # Cálculo da data do próximo atendimento (agendamento)
        interval = db.selectData(TempoContatoAcompanhamento).intervalo_contato
        data = self.atendimento.data + timedelta(hours=interval)

        # Salva o agendamento
        agendamento = Agendamento()
        agendamento.id_adm_saude = id_adm_saude
        agendamento.id_atendimento = id_atendimento
        agendamento.id_paciente = id_paciente
        agendamento.data = data

        db.saveData(agendamento)
예제 #13
0
    def inserirAtendimentoInicial(self, endereco, qtd_comodos, is_agua_encanada):
        if (not self.atendimento.is_primeiro):  # Caso esse atendimento NAO seja inicial, nao deixa inserir
            return
        inicial = AtendimentoInicial()
        inicial.endereco = endereco
        inicial.qtd_comodos = qtd_comodos
        inicial.is_agua_encanada = is_agua_encanada

        db = Database()
        db.saveData(inicial)

        # Recupera o ultimo atendimento inicial salvo para recuperar o ID.
        id = db.Session().query(AtendimentoInicial).order_by(desc(AtendimentoInicial.id)).first().id

        self.atendimento.id_atendimento_inicial = id
예제 #14
0
def savePaciente(nome, cpf, cns, telefone, dataNasc, id_etnia, id_genero, endereco, id_cidade=None):
    nome = data_or_null(nome)
    cpf = data_or_null(cpf, only_num)
    cns = data_or_null(cns, only_num)
    telefone = data_or_null(telefone, only_num)
    endereco = data_or_null(endereco)
    id_etnia = data_or_null(id_etnia, int)
    id_genero = data_or_null(id_genero, int)

    paciente = Paciente(nome, cpf, cns, telefone, dataNasc, id_etnia, id_genero, endereco, id_cidade)

    try:
        db = Database()
        db.saveData(paciente)
    except Exception as e:
        print(e)
예제 #15
0
def registrar():

    if not (current_user.perfil == 'master' or current_user.perfil == 'admin'):
        return redirect(url_for('MenuAtendente.index'))

    if request.method == 'POST':
        nome = request.form['nome']
        CRM = request.form['crm']
        cpf = only_num(request.form['cpf'])

        if 'cidade' in request.form:
            id_cidade = request.form['cidade']
        else:
            id_cidade = current_user.id_cidade

        supervisor = request.form['perfil']

        senha = request.form['senha']
        #id = request.form['id']

        db = Database()
        userCPF = db.selectIf(AdmSaude, cpf=cpf)

        if userCPF:
            flash('CPF já cadastrado.')
            return redirect(url_for('Registrar.registrar'))

        usuario = AdmSaude(nome, CRM, cpf, supervisor, senha, id_cidade)
        if usuario.validarCPF():
            db.saveData(usuario)

            return redirect(url_for('admin.admin'))
        else:
            flash('CPF inválido.')

    fields = {
        "nome": inputs.adm_nome,
        "crm": inputs.adm_crm,
        "cpf": inputs.adm_cpf,
        "senha": inputs.adm_senha,
        "cidade": inputs.cidade
    }

    return render_template('registrar.html',
                           fields=fields,
                           dados=ler_dados(),
                           master=(current_user.perfil == 'master'))
예제 #16
0
def savePaciente(nome, cpf, telefone, dataNasc, id_etnia, id_genero, endereco):

    nome = data_or_null(nome)
    cpf = data_or_null(cpf, only_num)
    telefone = data_or_null(telefone, only_num)
    endereco = data_or_null(endereco)
    dataNasc = datetime.strptime(
        dataNasc, '%d/%m/%Y').date() if len(dataNasc) != 0 else None
    id_etnia = data_or_null(id_etnia, int)
    id_genero = data_or_null(id_genero, int)

    paciente = Paciente(nome, cpf, telefone, dataNasc, id_etnia, id_genero,
                        endereco)

    try:
        db = Database()
        db.saveData(paciente)
    except Exception as e:
        print(e)
def userAgendamentos(user_id):
    
    try:
        db = Database()
        session = db.Session()

        return session.query(Agendamento, Atendimento, Paciente).\
            filter(Agendamento.id_atendimento == Atendimento.id,
                    Agendamento.id_adm_saude == user_id,
                    Atendimento.id_paciente == Paciente.id).\
                       order_by(Agendamento.data).\
                           with_entities(Atendimento.id.label('id'),
                                         Paciente.nome.label('nomePaciente'),
                                         Agendamento.data.label('diaAgendamento'),
                                         Atendimento.is_primeiro.label('primeiro'),
                                         Atendimento.data.label('diaAtendimento')).all()

    except Exception as e:
        print(e)
        return []
예제 #18
0
def updateTimes(intervalo, maximo):
    db = Database()
    times = db.selectAllData(TempoContatoAcompanhamento)
    if len(times) == 0:
        db.saveData(TempoContatoAcompanhamento(intervalo, maximo))
    else:
        id = times[0]['id']
        tempo = TempoContatoAcompanhamento(intervalo, maximo)
        tempo.id = id
        db.updateData(TempoContatoAcompanhamento, tempo, id)
예제 #19
0
def registrar():

    if not current_user.is_supervisor:
        return redirect(url_for('MenuAtendente.index'))

    if request.method == 'POST':
        nome = request.form['nome']
        CRM = request.form['crm']
        cpf = only_num(request.form['cpf'])

        supervisor = 'is_supervisor' in request.form

        print("Supervisor registrar {}".format(supervisor))
        senha = request.form['senha']
        #id = request.form['id']

        db = Database()
        userCPF = db.selectIf(AdmSaude, cpf=cpf)

        if userCPF:
            flash('CPF já cadastrado.')
            return redirect(url_for('Registrar.registrar'))

        usuario = AdmSaude(nome, CRM, cpf, supervisor, senha)
        if usuario.validarCPF():
            db.saveData(usuario)

            return redirect(url_for('admin.admin'))
        else:
            flash('CPF inválido.')

    fields = {
        "nome": inputs.adm_nome,
        "crm": inputs.adm_crm,
        "cpf": inputs.adm_cpf,
        "senha": inputs.adm_senha,
        "is_supervisor": inputs.adm_is_supervisor,
    }

    return render_template('registrar.html', fields=fields, dados=ler_dados())
예제 #20
0
def loginMetodo():

    if request.method == 'GET':
        
        dados = ler_dados()

        return render_template('login.html', dados = dados)           
    
    elif request.method == 'POST':
        cpf = request.form['cpf']
        sh = request.form['senha']

        db = Database()
        
        userCPF = db.selectIf(AdmSaude,cpf=cpf) 

        print(userCPF)
        if not userCPF or not userCPF.verificaSenha(sh):
            flash('Dados inválidos.')
            return redirect(url_for('Login.loginMetodo'))
        else:
            login_user(userCPF) 
            return redirect(url_for('MenuAtendente.index'))
예제 #21
0
def define_database(category_manager: CategoryManager,
                    product_manager: ProductManager, session: Session,
                    store_manager: StoreManager) -> Session:
    """
    Format user's database to host application's data.

    :param category_manager: CategoryManager
    :param product_manager: ProductManager
    :param session: Session
    :param store_manager: StoreManager
    :return: Session
    """
    global DATABASE  # pylint: disable=W0603
    while 1:
        database_name: str = input("Entrez le nom de la base de "
                                   "données: \n")
        if session.database_exists(database_name):
            database = Database(session, database_name)
            session.close()
            session = Session()
            database.session = session
            try:
                session.connect()
                database.populate(category_manager, product_manager,
                                  store_manager)
                DATABASE = database_name

                return session
            except Exception:
                session.close()
                raise
        else:
            print(f"\n"
                  f"Vous avez tapé {database_name} mais celle-ci "
                  f"n'est pas présente dans mysql. Merci de "
                  f"vérifier "
                  f"\n")
예제 #22
0
 def encontrarIdValor(self, obj, value):
     db = Database()
     res = db.selectIf(obj, value=value)
     if res is None:
         newObj = obj(value)
         db.saveData(newObj)
         id = db.selectData(newObj)
     else:
         id = res.id
     return id
예제 #23
0
def inserirPaciente(nome, cpf, telefone, endereco, data_nasc, id_etnia,
                    id_genero):
    db = Database()
    paciente = db.selectIf(Paciente, cpf=cpf)
    if paciente:
        return paciente.id
    else:
        new_paciente = Paciente(nome, cpf, telefone, data_nasc, id_etnia,
                                id_genero, endereco)
        db.saveData(new_paciente)
        return db.selectIf(Paciente, cpf=cpf).id
예제 #24
0
def inserirPaciente(nome, cpf, cns, telefone, endereco, data_nasc, id_etnia, id_genero, id_cidade=None):
    db = Database()
    paciente = db.selectIf(Paciente, cpf=cpf)
    if paciente:
        # atualizar paciente
        updatePaciente(paciente.id, nome, cpf, cns, telefone, id_etnia, id_genero, data_nasc, endereco, id_cidade)
        return paciente.id
    else:
        new_paciente = Paciente(nome, cpf, cns, telefone, data_nasc, id_etnia, id_genero, endereco, id_cidade)
        db.saveData(new_paciente)
        return db.selectIf(Paciente, cpf=cpf).id
예제 #25
0
def newEsf(name, id_cidade):

    esf = EstrategiaSaudeFamiliar(name, id_cidade)

    db = Database()
    db.saveData(esf)
예제 #26
0
def get_cidades():
    db = Database()
    return db.selectAllData(Cidade)
예제 #27
0
def genero_etnia():
    db = Database()
    genero = db.selectAllData(Genero)
    etnia = db.selectAllData(Etnia)
    return genero, etnia
예제 #28
0
def removeUser(id):
    db = Database()
    db.delete(AdmSaude, id)
예제 #29
0
def deleteEsf(id):
    db = Database()
    db.delete(EstrategiaSaudeFamiliar, id)
예제 #30
0
def removePaciente(id):
    db = Database()
    db.delete(Paciente, id)