def Registrar(self):
     if self.selecciona:
         self.guardarImagen()
     paciente = Paciente(self.txtID.text(), self.txtCedula.text(),
                         str(self.txtNombres.text()),
                         str(self.txtApellidos.text()),
                         str(self.txtFecha.text()), self.txtEdad.text(),
                         self.txtAport.text(),
                         str(self.txtDireccion1.text()),
                         str(self.txtDireccion2.text()),
                         str(self.txtTelefono1.text()),
                         str(self.txtTelefono2.text()),
                         str(self.txtCorreo.text()),
                         self.txtSueldo.text().replace(",", "."),
                         self.txtDias.text(),
                         str(self.cbxSexo.currentText()),
                         str(self.cbxNivel.currentText()),
                         str(self.txtCuenta.text()),
                         str(self.cbxDiscapacidad.currentText()),
                         str(self.txtNombreRecom.text()),
                         str(self.txtTelefonoRecom.text()),
                         str(self.txtCelularRecom.text()),
                         str(self.txtCiudad.text()), self.fname)
     if self.btnGuardar.text() == "Guardar":
         QtWidgets.QMessageBox.information(self, 'Informacion',
                                           paciente.RegistrarPaciente(),
                                           QtWidgets.QMessageBox.Ok)
         self.borrarCampos()
     elif self.btnGuardar.text() == "Modificar":
         QtWidgets.QMessageBox.information(self, 'Informacion',
                                           paciente.UpdatePaciente(),
                                           QtWidgets.QMessageBox.Ok)
Beispiel #2
0
def main():
    
    
    
    paciente1 = Paciente("Gomez", "20142020030","c")
    paciente2 = Paciente("Felipe", "20142020031","p")
    paciente3 = Paciente("Miguel", "20142020032","g")
    paciente4 = Paciente("Angel", "20142020033","g")
    paciente5 = Paciente("Neider", "20142020034","c")
    paciente6 = Paciente("Alejandro", "20142020035","c")
    paciente7 = Paciente("Cristian", "20142020036","p")
    paciente8 = Paciente("Camilo", "20142020037","g")
    paciente9 = Paciente("Camila", "20142020038","c")
    paciente10 = Paciente("Maria", "20142020039","p")
        
    
    organizarPacientes(paciente1)
    organizarPacientes(paciente2)
    organizarPacientes(paciente3)
    organizarPacientes(paciente4)
    organizarPacientes(paciente5)
    organizarPacientes(paciente6)
    organizarPacientes(paciente7)
    organizarPacientes(paciente8)
    organizarPacientes(paciente9)
    organizarPacientes(paciente10)
    print("Cardiologia")
    mostrarLista(cardiologia)
    print("Pediatria")
    mostrarLista(pediatria)
    print("Geriatria")
    mostrarLista(geriatria)
Beispiel #3
0
 def __init__(self):
     QtWidgets.QWidget.__init__(self)
     self.setupUi(self)
     self.pushButton.clicked.connect(self.TelaEditarPacienteInfo)
     self.pushButton_4.clicked.connect(self.TelaMenuPrincipal)
     self.pushButton_3.clicked.connect(self.lineEdit.copy)
     self.pushButton_3.clicked.connect(self.buscarMedicamento)
     self.pushButton_2.clicked.connect(self.limparTela)
     self.paciente = Paciente()
Beispiel #4
0
 def __init__(self,interfaz):
     QtWidgets.QMainWindow.__init__(self)
     Ui_Paciente.__init__(self) 
     self.setupUi(self)
     self.Paciente = Paciente()
     self.RellenarTabla()
     self.listaEmpleados.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) # seleccionar solo filas
     self.listaEmpleados.setSelectionMode(QtWidgets.QTableWidget.SingleSelection)
     self.interfaz = interfaz
     self.listaEmpleados.itemDoubleClicked.connect(self.EditPaciente)
     self.btnEliminar.clicked.connect(self.dropPaciente)
     self.btnBuscar.clicked.connect(self.Filtrar)
Beispiel #5
0
 def eliminar(self):
     try:
         selected = self.tb_eliminar.selectedIndexes()
         self.selected_index = selected.__getitem__(0)
         select = self.todos[self.selected_index.row()]
         paciente_user = Paciente()
         paciente_user.id = select.id
         rst=QMessageBox.warning(self,"Alerta","Esta seguro que desea eliminar", QMessageBox.Cancel, QMessageBox.Ok)
         if rst == QMessageBox.Ok:
             if(paciente_user.eliminar()):
                 QMessageBox.about(self,"¡Enhorabuena!", "Se ha eliminado al Paciente")
             else:
                 print('dd')
                 QMessageBox.warning(self,"Error", "Ha ocurrido un error")
     except:
         QMessageBox.about(self,"Error", "Ha ocurrido un error")
     self.actualizarGrids()
Beispiel #6
0
 def elegir_dobleclick(self):
     rst = QMessageBox.warning(self,"Alerta","¿Esta seguro que desea editar?", QMessageBox.Cancel, QMessageBox.Ok)
     if rst != QMessageBox.Ok:
         self.paciente_user = Paciente()
         return
     selected = self.tb_pacientes.selectedIndexes()
     self.selected_index = selected.__getitem__(0)
     select = self.todos[self.selected_index.row()]
     self.paciente_user.id = select.id
     self.tabWidget.setCurrentWidget(self.tab_1)
     self.txt_nombre.setText(select.nombres)
     self.txt_apellido.setText(select.apellidos)
     self.txt_telefono.setText(select.telefono)
     self.txt_cedula.setText(select.cedula)
     self.txt_direccion.setText(select.direccion)
Beispiel #7
0
 def guardar(self):
     if self.paciente_user.id is None or self.paciente_user.id == 0:
         self.paciente_user = Paciente()
     self.paciente_user.nombres = self.txt_nombre.text()
     self.paciente_user.apellidos = self.txt_apellido.text()
     self.paciente_user.telefono = self.txt_telefono.text()
     self.paciente_user.cedula = self.txt_cedula.text()
     self.paciente_user.direccion = self.txt_direccion.text()
     if(self.paciente_user.guardar()):
         self.txt_nombre.setText('')
         self.txt_apellido.setText('')
         self.txt_telefono.setText('')
         self.txt_cedula.setText('')
         self.txt_direccion.setText('')
         QtWidgets.QMessageBox.information(self, '¡Enhorabuena!', 'Se ha registrado el doctor', QtWidgets.QMessageBox.Ok)
     else:
         QtWidgets.QMessageBox.warning(self, 'Error', 'Revisa los datos', QtWidgets.QMessageBox.Ok)
     self.actualizarGrids()
Beispiel #8
0
while sair == False:
    print('1 - Cadastrar novo paciente')
    print('2 - Gerar relatório ')
    print('3 - Sair do Sistema')
    opcao = int(input('Escolha uma opção:'))
    if opcao == 1:
        nome = input('Informe o nome do paciente: ')
        febreM = int(input("Febre moderada(38 a 39 °C)?  1=Sim, 0=NÃO : "))
        febreA = int(input("Febre alta (acima de 39 °C)? 1=Sim, 0=NÃO : "))
        tosseP = int(input("Tosse Persistente?           1=Sim, 0=NÃO : "))
        tosseS = int(input("Tosse Seca?                  1=Sim, 0=NÃO : "))
        fdeAr = int(input("Falta de Ar?                 1=Sim, 0=NÃO : "))
        dparaResp = int(input("Dor para respirar?           1=Sim, 0=NÃO : "))
        pGastrico = int(input("Problema Gastrico?           1=Sim, 0=NÃO : "))
        diarreia = int(input("Diarreia?                    1=Sim, 0=NÃO : "))
        paciente = Paciente(nome, febreM, febreA, tosseP, tosseS, fdeAr, dparaResp, pGastrico, diarreia)
        paciente.infectado = rn.testar(paciente)

        if paciente.infectado:
            print("------------Paciente possivelmente infectado ")

        dao.salvar(paciente)

    if opcao == 2:
        infectados = 0
        print()
        print("Relatório_________________________________")
        pacientes = dao.listar()
        for paciente in pacientes:
            paciente.imprimir()
            if paciente.infectado == True:
Beispiel #9
0
    def cadastrar(self):
        nome = self.lineEdit_nome.text()
        sobrenome = self.lineEdit_sobrenome.text()
        cpf = self.lineEdit_CPF.text()
        rg = self.lineEdit_RG.text()
        data_nasc = QtWidgets.QDateTimeEdit.date(self.dateEdit_Data_nasc)
        data_nasc = data_nasc.toPyDate()

        if nome and sobrenome and cpf and rg and data_nasc:
            paciente = Paciente()
            paciente.setCPFPaciente(cpf)
            if paciente.cpfCorreto():#Verifica se o cpf esta correto
                ano_nasc = data_nasc.strftime("%Y")
                ano_atual = date.today().strftime('%Y')
                idade = int(ano_atual) - int(ano_nasc)
                if idade >=18:
                    if paciente.validaCPFpaciente(cpf):#Verifica se o cpf esta cadastrado
                        self.label_Erro.setText("CPF já está cadastrado!")
                    else:
                        paciente.setNomePaciente(nome)
                        paciente.setSobrenomePaciente(sobrenome)
                        paciente.setRgPaciente(rg)
                        paciente.setDataNasc(data_nasc)
                        paciente.gravaBDpaciente()
                        Mensagem.msg = "Paciente Cadastrado com sucesso!"
                        Mensagem.cor = "black"
                        Mensagem.img = 1
                        self.switch_window_2.emit()
                        self.limpaCampos()
                else:
                    self.label_Erro.setText("Idade não permitida!")
            else:
                self.label_Erro.setText("O CPF está incorreto!")
        else:
            self.label_Erro.setText("Existem campos a serem preenchidos!")
Beispiel #10
0
class viewPaciente(QtWidgets.QMainWindow, Ui_Paciente):
    def __init__(self,interfaz):
        QtWidgets.QMainWindow.__init__(self)
        Ui_Paciente.__init__(self) 
        self.setupUi(self)
        self.Paciente = Paciente()
        self.RellenarTabla()
        self.listaEmpleados.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) # seleccionar solo filas
        self.listaEmpleados.setSelectionMode(QtWidgets.QTableWidget.SingleSelection)
        self.interfaz = interfaz
        self.listaEmpleados.itemDoubleClicked.connect(self.EditPaciente)
        self.btnEliminar.clicked.connect(self.dropPaciente)
        self.btnBuscar.clicked.connect(self.Filtrar)


    def RellenarTabla(self):
        self.listaEmpleados.clear()
        self.listaEmpleados.setColumnCount(23)
        self.listaEmpleados.setHorizontalHeaderLabels(['Id', 'Cédula', 'Nombres', 'Apellidos', 'Fecha Nacimiento','Edad', '# Aportaciones', 'Dirección 1', 'Dirección 2', 'Teléfono 1', 'Teléfono 2', 'Email', 'Sueldo', 'Dias Laborales','Género', '   Nivel Académico', '# Cuenta', 'Discapacidad', 'Nombre Recomendado', 'Teléfono Recomendado', 'Celular Recomendado', 'Ciudad', 'Foto'])
        datos = self.Paciente.obtenerPacientes()
        self.listaEmpleados.setRowCount(len(datos))
        for i,row in enumerate(datos):
            for j,val in enumerate(row):
                self.listaEmpleados.setItem(i,j,QtWidgets.QTableWidgetItem(str(val)))

    def EditPaciente(self,clicked):
        #fila = clicked.row()
        self.interfaz.nuevoPaciente()
        datos = self.listaEmpleados.selectedItems()
        self.interfaz.viewFormulario.borrarCampos()
        self.interfaz.viewFormulario.txtID.setText(datos[0].text())
        self.interfaz.viewFormulario.txtCedula.setText(datos[1].text())
        self.interfaz.viewFormulario.txtNombres.setText(datos[2].text())
        self.interfaz.viewFormulario.txtApellidos.setText(datos[3].text())
        self.interfaz.viewFormulario.txtFecha.setDate(datetime.datetime.strptime(datos[4].text(), "%d/%m/%Y"))
        self.interfaz.viewFormulario.txtEdad.setValue(int(datos[5].text()))
        self.interfaz.viewFormulario.txtAport.setValue(int(datos[6].text()))
        self.interfaz.viewFormulario.txtDireccion1.setText(datos[7].text())
        self.interfaz.viewFormulario.txtDireccion2.setText(datos[8].text())
        self.interfaz.viewFormulario.txtTelefono1.setText(datos[9].text())
        self.interfaz.viewFormulario.txtTelefono2.setText(datos[10].text())
        self.interfaz.viewFormulario.txtCorreo.setText(datos[11].text())
        self.interfaz.viewFormulario.txtSueldo.setValue(float(datos[12].text()))
        self.interfaz.viewFormulario.txtDias.setValue(int(datos[13].text()))
        index1 = self.interfaz.viewFormulario.cbxSexo.findText(datos[14].text(), QtCore.Qt.MatchFixedString)
        if index1 >= 0:
            self.interfaz.viewFormulario.cbxSexo.setCurrentIndex(index1)
        index2 = self.interfaz.viewFormulario.cbxNivel.findText(datos[15].text(), QtCore.Qt.MatchFixedString)
        if index2 >= 0:
            self.interfaz.viewFormulario.cbxNivel.setCurrentIndex(index2)
        self.interfaz.viewFormulario.txtCuenta.setText(datos[16].text())
        index3 = self.interfaz.viewFormulario.cbxDiscapacidad.findText(datos[17].text(), QtCore.Qt.MatchFixedString)
        if index3 >= 0:
            self.interfaz.viewFormulario.cbxDiscapacidad.setCurrentIndex(index3)
        self.interfaz.viewFormulario.txtNombreRecom.setText(datos[18].text())
        self.interfaz.viewFormulario.txtTelefonoRecom.setText(datos[19].text())
        self.interfaz.viewFormulario.txtCelularRecom.setText(datos[20].text())
        self.interfaz.viewFormulario.txtCiudad.setText(datos[21].text())
        self.interfaz.viewFormulario.verImagen.setPixmap(QtGui.QPixmap(str(datos[22].text())))
        self.interfaz.viewFormulario.btnGuardar.setText("Modificar")
        self.interfaz.viewFormulario.fotoActual = str(datos[22].text())
        self.interfaz.viewFormulario.btnLimpiar.setEnabled(False)

    def dropPaciente(self):
        datos = self.listaEmpleados.selectedItems()
        if len(datos) <= 0:
            QtWidgets.QMessageBox.information(self, 'Información', 'Seleccione el usuario que desea eliminar', QtWidgets.QMessageBox.Ok)
        else:
            confirmar = QtWidgets.QMessageBox.question(self, "Información", "¿Seguro que desea eliminar los datos de este Paciente?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
            if confirmar == QtWidgets.QMessageBox.Yes:
                QtWidgets.QMessageBox.information(self, 'Información', self.Paciente.dropPaciente(datos[0].text()), QtWidgets.QMessageBox.Ok)
                self.RellenarTabla()

    def Filtrar(self):
        item = self.cbxBusq.currentText()
        self.dato = self.txtBusq.text()
        self.listaEmpleados.clear()
        self.listaEmpleados.setColumnCount(23)
        self.listaEmpleados.setHorizontalHeaderLabels(['Id', 'Cédula', 'Nombres', 'Apellidos', 'Fecha Nacimiento','Edad', '# Aportaciones', 'Dirección 1', 'Dirección 2', 'Teléfono 1', 'Teléfono 2', 'Email', 'Sueldo', 'Dias Laborales','Género', '   Nivel Académico', '# Cuenta', 'Discapacidad', 'Nombre Recomendado', 'Teléfono Recomendado', 'Celular Recomendado', 'Ciudad', 'Foto'])
        if self.dato != '':
            if item == 'Cédula':
                datos = self.Paciente.buscarPacientePorCedula(self.dato)
            elif item == 'Apellidos':
                datos = self.Paciente.buscarPacientePorApellidos(self.dato)
            elif item == 'Nombres':
                datos = self.Paciente.buscarPacientePorNombres(self.dato)
            elif item == 'Ciudad':
                datos = self.Paciente.buscarPacientePorCiudad(self.dato)
        else:
            datos = self.Paciente.obtenerPacientes()
        self.listaEmpleados.setRowCount(len(datos))
        for i,row in enumerate(datos):
            for j,val in enumerate(row):
                self.listaEmpleados.setItem(i,j,QtWidgets.QTableWidgetItem(str(val)))
Beispiel #11
0
class VentanaCliente(QDialog, cliente):
    paciente_user = Paciente()

    def __init__(self, parent =  None):
        QDialog.__init__(self, parent)
        self.setupUi(self)
        self.inicializar()

    def inicializar(self):
        self.btn_buscar.clicked.connect(self.buscar)
        self.btn_guardar.clicked.connect(self.guardar)
        self.btn_eliminar_todo.clicked.connect(self.eliminar)
        self.todos = self.paciente_user.consultar_todos()
        self.tb_pacientes.doubleClicked.connect(self.elegir_dobleclick)
        self.actualizarGrids()
        self.btn_cerrar.clicked.connect(self.closeEvent)

    def actualizarGrids(self):
        self.todos = self.paciente_user.consultar_todos()
        self.fillDataGrid(self.todos, self.tb_pacientes)
        self.fillDataGrid(self.todos, self.tb_eliminar)

    def elegir_dobleclick(self):
        rst = QMessageBox.warning(self,"Alerta","¿Esta seguro que desea editar?", QMessageBox.Cancel, QMessageBox.Ok)
        if rst != QMessageBox.Ok:
            self.paciente_user = Paciente()
            return
        selected = self.tb_pacientes.selectedIndexes()
        self.selected_index = selected.__getitem__(0)
        select = self.todos[self.selected_index.row()]
        self.paciente_user.id = select.id
        self.tabWidget.setCurrentWidget(self.tab_1)
        self.txt_nombre.setText(select.nombres)
        self.txt_apellido.setText(select.apellidos)
        self.txt_telefono.setText(select.telefono)
        self.txt_cedula.setText(select.cedula)
        self.txt_direccion.setText(select.direccion)

    def guardar(self):
        if self.paciente_user.id is None or self.paciente_user.id == 0:
            self.paciente_user = Paciente()
        self.paciente_user.nombres = self.txt_nombre.text()
        self.paciente_user.apellidos = self.txt_apellido.text()
        self.paciente_user.telefono = self.txt_telefono.text()
        self.paciente_user.cedula = self.txt_cedula.text()
        self.paciente_user.direccion = self.txt_direccion.text()
        if(self.paciente_user.guardar()):
            self.txt_nombre.setText('')
            self.txt_apellido.setText('')
            self.txt_telefono.setText('')
            self.txt_cedula.setText('')
            self.txt_direccion.setText('')
            QtWidgets.QMessageBox.information(self, '¡Enhorabuena!', 'Se ha registrado el doctor', QtWidgets.QMessageBox.Ok)
        else:
            QtWidgets.QMessageBox.warning(self, 'Error', 'Revisa los datos', QtWidgets.QMessageBox.Ok)
        self.actualizarGrids()

    def eliminar(self):
        try:
            selected = self.tb_eliminar.selectedIndexes()
            self.selected_index = selected.__getitem__(0)
            select = self.todos[self.selected_index.row()]
            paciente_user = Paciente()
            paciente_user.id = select.id
            rst=QMessageBox.warning(self,"Alerta","Esta seguro que desea eliminar", QMessageBox.Cancel, QMessageBox.Ok)
            if rst == QMessageBox.Ok:
                if(paciente_user.eliminar()):
                    QMessageBox.about(self,"¡Enhorabuena!", "Se ha eliminado al Paciente")
                else:
                    print('dd')
                    QMessageBox.warning(self,"Error", "Ha ocurrido un error")
        except:
            QMessageBox.about(self,"Error", "Ha ocurrido un error")
        self.actualizarGrids()

    def fillDataGrid(self, result, tb):
        model = QStandardItemModel()
        model.setColumnCount(len(self.paciente_user.headernames))
        model.setHorizontalHeaderLabels(self.paciente_user.headernames)
        pacientes = []
        for paciente_result in result:
          li = [paciente_result.nombres, paciente_result.apellidos, paciente_result.direccion, paciente_result.telefono, paciente_result.cedula]
          pacientes.append(li)
          row = []
          for name in li:
            item = QStandardItem(str(name))
            item.setEditable(False)
            row.append(item)
          model.appendRow(row)
        tb.setModel(model)
        return pacientes

    def buscar(self):
        texto = self.txt_buscar.text()
        if len(texto) < 1:
            self.actualizarGrids()
            QMessageBox.about(self,"Error", "No encontramos nada")
            return
        result = []
        if self.radioButton_nombre.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'nombres')
        elif self.radioButton_apellido.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'apellidos')
        elif self.radioButton_cedula.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'cedula')
        self.fillDataGrid(result, self.tb_pacientes)

    def closeEvent(self):
        self.hide()
    def atualizarPaciente(self):
        nome = self.lineEdit_NomePac.text()
        sobrenome = self.lineEdit_SobrenomePac.text()
        cpf = self.lineEdit_CPF.text()
        rg = self.lineEdit_RG.text()
        data_nasc = QtWidgets.QDateTimeEdit.date(self.dateEdit_DataNasc)
        data_nasc = data_nasc.toPyDate()

        if cpf and nome and sobrenome and data_nasc and rg:
            paciente = Paciente()
            paciente.setCPFPaciente(cpf)
            if paciente.cpfCorreto():
                ano_nasc = data_nasc.strftime("%Y")
                ano_atual = date.today().strftime('%Y')
                idade = int(ano_atual) - int(ano_nasc)
                if idade >= 18:
                    if cpf != EditarPacienteInfo.cpf:
                        if paciente.validaCPFpaciente(cpf):
                            self.label_Erro.setText(
                                "PACIENTE JÁ ESTÁ CADASTRADO!")
                        else:
                            paciente.setNomePaciente(nome.lower())
                            paciente.setSobrenomePaciente(sobrenome.lower())
                            paciente.setRgPaciente(rg)
                            paciente.setDataNasc(data_nasc)
                            paciente.atualizaBDpaciente(EditarPacienteInfo.cpf)
                            Mensagem.msg = "Paciente atualizado com sucesso"
                            Mensagem.cor = "black"
                            Mensagem.img = 1
                            self.switch_window.emit()
                    else:
                        paciente.setNomePaciente(nome.lower())
                        paciente.setSobrenomePaciente(sobrenome.lower())
                        paciente.setRgPaciente(rg)
                        paciente.setDataNasc(data_nasc)
                        paciente.atualizaBDpaciente(EditarPacienteInfo.cpf)
                        Mensagem.msg = "Paciente atualizado com sucesso"
                        Mensagem.cor = "black"
                        Mensagem.img = 1
                        self.switch_window.emit()
                else:
                    self.label_Erro.setText("Idade não permitida!")
            else:
                self.label_Erro.setText("O cpf foi digitado errado")
        else:
            self.label_Erro.setText("Existem campos a serem preenchidos")
    def setupUi(self, Form):
        paciente = Paciente()
        paciente.recuperaBDpacAtr(EditarPacienteInfo.cpf)
        Form.setWindowIcon(QtGui.QIcon("img/home.png"))
        Form.setObjectName("Form")
        Form.setFixedSize(582, 228)

        self.fontLabelErro = QtGui.QFont()
        self.fontLabelErro.setFamily("Arial")
        self.fontLabelErro.setPointSize(12)
        self.fontLabelErro.setBold(True)
        self.fontLabelErro.setWeight(75)

        self.fontCampos = QtGui.QFont()
        self.fontCampos.setFamily("Arial")
        self.fontCampos.setPointSize(9)
        self.fontCampos.setWeight(75)
        self.fontCampos.setCapitalization(3)

        self.pushButton_MenuPrin = QtWidgets.QPushButton(Form)
        self.pushButton_MenuPrin.setGeometry(QtCore.QRect(470, 110, 91, 28))
        self.pushButton_MenuPrin.setObjectName("pushButton_MenuPrin")

        self.pushButton_Salvar = QtWidgets.QPushButton(Form)
        self.pushButton_Salvar.setGeometry(QtCore.QRect(470, 190, 93, 28))
        self.pushButton_Salvar.setObjectName("pushButton_retirar")

        self.lineEdit_NomePac = QtWidgets.QLineEdit(Form)
        self.lineEdit_NomePac.setGeometry(QtCore.QRect(50, 10, 100, 22))
        self.lineEdit_NomePac.setObjectName("lineEdit_NomePac")
        self.lineEdit_NomePac.setMaxLength(15)
        self.lineEdit_NomePac.setFont(self.fontCampos)
        self.lineEdit_NomePac.setValidator(
            QtGui.QRegExpValidator(QtCore.QRegExp("[A-Za-z]+"),
                                   self.lineEdit_NomePac))
        self.lineEdit_NomePac.setText(paciente.getNomePaciente()[0].title())

        self.lineEdit_SobrenomePac = QtWidgets.QLineEdit(Form)
        self.lineEdit_SobrenomePac.setGeometry(QtCore.QRect(240, 10, 200, 22))
        self.lineEdit_SobrenomePac.setObjectName("lineEdit_SobrenomePac")
        self.lineEdit_SobrenomePac.setMaxLength(40)
        self.lineEdit_SobrenomePac.setFont(self.fontCampos)
        self.lineEdit_SobrenomePac.setValidator(
            QtGui.QRegExpValidator(QtCore.QRegExp("[A-Za-z ]+"),
                                   self.lineEdit_SobrenomePac))
        self.lineEdit_SobrenomePac.setText(
            paciente.getSobrenomePaciente()[0].title())

        self.label_Erro = QtWidgets.QLabel(Form)
        self.label_Erro.setGeometry(QtCore.QRect(30, 110, 371, 131))
        self.label_Erro.setObjectName("label_Erro")
        self.label_Erro.setFont(self.fontLabelErro)
        self.label_Erro.setStyleSheet('QLabel {color: red')

        self.label_Nome = QtWidgets.QLabel(Form)
        self.label_Nome.setGeometry(QtCore.QRect(10, 10, 50, 16))
        self.label_Nome.setObjectName("label_Nome")

        self.label_Sobrenome = QtWidgets.QLabel(Form)
        self.label_Sobrenome.setGeometry(QtCore.QRect(170, 10, 60, 16))
        self.label_Sobrenome.setObjectName("label_Sobrenome")

        self.label_CPF = QtWidgets.QLabel(Form)
        self.label_CPF.setGeometry(QtCore.QRect(10, 50, 55, 16))
        self.label_CPF.setObjectName("label_CPF")

        self.label_DataNasc = QtWidgets.QLabel(Form)
        self.label_DataNasc.setGeometry(QtCore.QRect(10, 90, 121, 16))
        self.label_DataNasc.setObjectName("label_DataNasc")

        self.dateEdit_DataNasc = QtWidgets.QDateEdit(Form)
        self.dateEdit_DataNasc.setGeometry(QtCore.QRect(150, 90, 110, 22))
        self.dateEdit_DataNasc.setObjectName("dateEdit_DataNasc")
        self.dateEdit_DataNasc.setFont(self.fontCampos)
        self.dateEdit_DataNasc.setDate(paciente.getDataNasc()[0])

        self.label_RG = QtWidgets.QLabel(Form)
        self.label_RG.setGeometry(QtCore.QRect(290, 50, 55, 16))
        self.label_RG.setObjectName("label_RG")

        self.lineEdit_RG = QtWidgets.QLineEdit(Form)
        self.lineEdit_RG.setGeometry(QtCore.QRect(320, 50, 191, 22))
        self.lineEdit_RG.setObjectName("lineEdit_RG")
        self.lineEdit_RG.setValidator(
            QtGui.QRegExpValidator(QtCore.QRegExp("[0-9]+"), self.lineEdit_RG))
        self.lineEdit_RG.setText(paciente.getRg()[0])
        self.lineEdit_RG.setFont(self.fontCampos)
        self.lineEdit_RG.setMaxLength(9)

        self.lineEdit_CPF = QtWidgets.QLineEdit(Form)
        self.lineEdit_CPF.setGeometry(QtCore.QRect(50, 50, 211, 22))
        self.lineEdit_CPF.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.lineEdit_CPF.setObjectName("lineEdit_CPF")
        self.lineEdit_CPF.setValidator(
            QtGui.QRegExpValidator(QtCore.QRegExp("[0-9]+"),
                                   self.lineEdit_CPF))
        self.lineEdit_CPF.setText(str(paciente.getCPF()[0]))
        self.lineEdit_CPF.setFont(self.fontCampos)
        self.lineEdit_CPF.setMaxLength(11)

        self.pushButton_Salvar.clicked.connect(self.copiarCampos)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
Beispiel #14
0
class EditarPaciente(QtWidgets.QWidget):

    switch_window = QtCore.pyqtSignal()
    switch_window_2 = QtCore.pyqtSignal()

    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.TelaEditarPacienteInfo)
        self.pushButton_4.clicked.connect(self.TelaMenuPrincipal)
        self.pushButton_3.clicked.connect(self.lineEdit.copy)
        self.pushButton_3.clicked.connect(self.buscarMedicamento)
        self.pushButton_2.clicked.connect(self.limparTela)
        self.paciente = Paciente()

    def setupUi(self, Form):
        Form.setWindowIcon(QtGui.QIcon("img/home.png"))
        Form.setObjectName("Form")
        Form.setFixedSize(660, 273)

        self.fontLabel = QtGui.QFont()
        self.fontLabel.setFamily("Arial")
        self.fontLabel.setPointSize(9)
        self.fontLabel.setBold(True)
        self.fontLabel.setWeight(75)

        self.fontCampos = QtGui.QFont()
        self.fontCampos.setFamily("Arial")
        self.fontCampos.setPointSize(9)
        self.fontCampos.setWeight(75)
        self.fontCampos.setCapitalization(3)

        self.label_Erros = QtWidgets.QLabel(Form)
        self.label_Erros.setGeometry(QtCore.QRect(300, 10, 300, 20))
        self.label_Erros.setAlignment(QtCore.Qt.AlignCenter)
        self.label_Erros.setFont(self.fontLabel)
        self.label_Erros.setObjectName("Erros")

        self.label_busca_pac = QtWidgets.QLabel(Form)
        self.label_busca_pac.setGeometry(QtCore.QRect(50, 50, 151, 20))
        self.label_busca_pac.setObjectName("Buscar Pcientes")

        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(557, 230, 93, 28))
        self.pushButton.setVisible(False)
        self.pushButton.setObjectName("Editar")

        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(557, 150, 93, 28))
        self.pushButton_2.setObjectName("Limpar")

        self.pushButton_3 = QtWidgets.QPushButton(Form)
        self.pushButton_3.setGeometry(QtCore.QRect(557, 49, 93, 28))
        self.pushButton_3.setObjectName("Buscar")

        self.pushButton_4 = QtWidgets.QPushButton(Form)
        self.pushButton_4.setGeometry(QtCore.QRect(557, 110, 91, 28))
        self.pushButton_4.setObjectName("Menu Principal")

        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(185, 50, 361, 25))
        self.lineEdit.setToolTip("Digite o 1° nome ou cpf do paciente")
        self.lineEdit.setPlaceholderText("Digite o 1° nome ou cpf do paciente")
        self.lineEdit.setMaxLength(15)
        self.lineEdit.setFont(self.fontCampos)
        self.lineEdit.setObjectName("Primeiro nome ou cpf do paciente")

        self.tabela = QtWidgets.QTableWidget(Form)
        self.tabela.setGeometry(QtCore.QRect(50, 110, 496, 146))
        self.tabela.setColumnCount(6)  # Set dez columns
        self.tabela.setHorizontalHeaderLabels(["ID", "Nome","Sobrenome", "CPF", "RG", "Data Nasc."])
        self.tabela.setFont(self.fontLabel)
        self.tabela.resizeColumnsToContents()
        self.tabela.resizeRowsToContents()


        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Editar Paciente"))
        self.pushButton_4.setText(_translate("Form", "Menu principal"))
        self.pushButton_3.setText(_translate("Form", "Buscar"))
        self.pushButton.setText(_translate("Form", "Editar"))
        self.label_busca_pac.setText(_translate("Form", "Buscar Paciente:"))
        self.pushButton_2.setText(_translate("Form", "Limpar"))

    def limparTela(self):
        self.label_Erros.clear()
        self.tabela.clear()
        self.tabela.setHorizontalHeaderLabels(["ID", "Nome", "CPF", "RG", "Data Nasc."])
        self.pushButton.setVisible(False)

    def TelaEditarPacienteInfo(self):
        self.switch_window_2.emit()
        self.pushButton.setVisible(False)

    def TelaMenuPrincipal(self):
        self.switch_window.emit()


    def buscarMedicamento(self):
        self.limparTela()
        cpfNome = self.lineEdit.text()#Lê o campo com cpf ou nome
        if cpfNome:
            if self.paciente.validaCPFnome(cpfNome):#Verifica se o cpf ou nome existe

                self.paciente.recuperaBDpaciente(cpfNome)#Recupera todos paciente em variavel objeto para o objeto paciente
                if self.paciente.validaCPFpaciente(cpfNome):#Verifica se foi digitado um cpf valido para habilitar o botão editar
                    EditarPacienteInfo.cpf = cpfNome  # Passa para variavel estática cpf da classe EditarPacienteInfo
                    self.pushButton.setVisible(True)
                self.preencheTabela()
            else:
                self.msgErro()
        self.tabela.setHorizontalHeaderLabels(["ID", "Nome", "Sobrenome", "CPF", "RG", "Data Nasc."])
        self.tabela.resizeColumnsToContents()
        self.tabela.resizeRowsToContents()

    def preencheTabela(self):
        dados = self.paciente.getPaciente()
        self.tabela.setRowCount(0)
        for num_linha, linha_dado in enumerate(dados):
            self.tabela.insertRow(num_linha)
            for num_coluna, dado in enumerate(linha_dado):
                self.tabela.setItem(num_linha, num_coluna, self.formatCell(str(dado)))
                if num_coluna == 1 or num_coluna == 2:
                    self.tabela.setItem(num_linha, num_coluna, self.formatCellNomeSobrenome(str(dado).title()))

        for linha in range(len(dados)):#Formatação das datas de nascimento
            dataNasc = dados[linha][5].strftime('%d/%m/%Y')
            self.tabela.setItem(linha, 5, self.formatCell(dataNasc))

        self.tabela.setHorizontalHeaderLabels(["ID", "Nome","Sobrenome", "CPF", "RG", "Data Nasc."])
        
        for pos in range(6):
            self.tabela.horizontalHeaderItem(pos).setTextAlignment(QtCore.Qt.AlignVCenter)

        self.tabela.resizeColumnsToContents()
        self.tabela.resizeRowsToContents()

    def formatCell(self, dado):
        cellinfo = QtWidgets.QTableWidgetItem(dado)
        cellinfo.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
        cellinfo.setTextAlignment(QtCore.Qt.AlignRight)
        return cellinfo

    def formatCellNomeSobrenome(self, dado):
        cellinfo = QtWidgets.QTableWidgetItem(dado)
        cellinfo.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
        cellinfo.setTextAlignment(QtCore.Qt.AlignLeft)
        return cellinfo

    def msgErro(self):
        self.tabela.clear()
        self.tabela.setHorizontalHeaderLabels(["ID", "Nome", "Sobrenome", "CPF", "RG", "Data Nasc."])
        self.tabela.resizeColumnsToContents()
        self.tabela.resizeRowsToContents()
        self.label_Erros.setText("CPF OU NOME NÃO CADASTRADO!")
        self.label_Erros.setStyleSheet('QLabel {color: red')