def cargar():
            def cerrar_exp():
                pacientes.destroy()
                #pacientes.eval('::ttk::CancelRepeat')
                self.cargar_paciente()

            try:

                nombre_pac = self.util.validar_cadena(str(nombre.get()), True)
                apellido_pac = self.util.validar_cadena(str(apellido.get()), True)
                cedula_pac = self.util.validar_entero(str(documento_identidad.get()), 1)
                telefono_pac = self.util.validar_cadena(str(telefono.get()), False)
                email_pac = self.util.validar_cadena(str(email.get()), False)
                fecha_pac = self.util.validar_fecha(str(fecha_nacimiento.get()))

                #contenedor = Medico(nombre, apellido, cedula, telefono, email, fecha, cargo, '')

                contenedor = Paciente(nombre_pac, apellido_pac, cedula_pac, telefono_pac, email_pac, fecha_pac, '')

                self.controller.cargar_paciente(contenedor)

            except Exception as e:
                alerta = tkinter.Message(pacientes, relief='raised',
                                         text='NO SE PUDO CARGAR EL PACIENTE\nError: ' + str(e), width=200)
                alerta.place(bordermode='outside', height=150, width=200, y=30, x=150)
                ok = tkinter.Button(alerta, text="Ok", command=cerrar_exp)
                ok.pack(side="bottom")
            else:
                alerta = tkinter.Message(pacientes, relief='raised', text='PACIENTE CARGADO CON EXITO', width=200)
                alerta.place(bordermode='outside', height=150, width=200, y=30, x=150)
                ok = tkinter.Button(alerta, text="Ok", command=cerrar_exp)
                ok.pack(side="bottom")
 def solicitar_datos_pac(self):
     print('-> Datos del nuevo Paciente')
     nombre = self.util.leer_cadena('Nombre: ',True)
     apellido = self.util.leer_cadena('Apellido: ',True)
     cedula = self.util.leer_entero('Cedula: ',1)
     telefono = self.util.leer_cadena('Telefono: ',False)
     email = self.util.leer_cadena('Email: ',False)
     fecha = self.util.leer_fecha('Fecha de Nacimiento dd/mm/yyyy: ')
     contenedor = Paciente(nombre,apellido,cedula,telefono,email,fecha,'','')
     return (contenedor)
class ControladorPaciente():
    """Clase Controlador de los Pacientes"""
    def __init__(self):
        self.var = Paciente('', '', 0, '', '', '', '', '')
        #self.view = View()
        self.util = Util()

    def cargar_paciente(self, paciente):
        self.var = paciente
        codigo = self.util.genera_codigo(self.var.nombre, self.var.apellido,
                                         self.var.cedula)
        existe = self.var.buscar_persona(codigo)
        if existe != None and len(existe) != 0:
            raise Exception(
                'El paciente {} ya esta existe en la base'.format(codigo))
            #self.view.mostrar_msg_pac(msg)
        else:
            self.var.carga_datos(codigo)
            msg = self.var.cargar_persona(self.var, codigo)
            ##self.view.mostrar_msg_pac(msg)

    def listar_paciente(self):
        return self.var.listar_persona()
        #self.view.listar_pacientes(ob)

    def buscar_paciente(self, codigo):
        #codigo = self.view.solicitar_codigo_pac()
        return self.var.buscar_persona(codigo)
        #self.view.mostrar_resultado_pac(paciente)

    def solicitar_oa(self):
        '''Se encarga de crear una orden de trabajo nueva'''
Exemple #4
0
 def __init__(self):
     # self.orden = OrdenPaciente()
     self.pac = Paciente()
     self.model = OrdenModel()
     self.cpac = ControladorPaciente()
     self.turno = TurnoController()
Exemple #5
0
class OrdenController:
    def __init__(self):
        # self.orden = OrdenPaciente()
        self.pac = Paciente()
        self.model = OrdenModel()
        self.cpac = ControladorPaciente()
        self.turno = TurnoController()

    def verificador_cupos(self):

        cargados = self.model.contador
        datosTope = self.turno.disponibilidad_x_turno()
        if (cargados >= datosTope):
            return False
        else:
            return True

    def cargar_orden(self):
        access = self.verificador_cupos()
        loop = True
        try:

            if (access):
                while (loop):
                    cedula = self.orden.solicitar_datos()
                    cliente = self.pac.buscar_persona_cedula(cedula)
                    if cliente == '':
                        msg = 'Paciente no registrado.'
                        self.orden.mostrar_msg2(msg)
                        consulta = self.orden.reg_cliente().upper()
                        if (consulta == 'S' or consulta == 'SI'):
                            self.cpac.cargar_paciente()

                    else:
                        nro = self.model.buscar_nro_orden()
                        if nro == 0:
                            nro = 1
                        else:
                            nro += 1
                        ahora = date.today().strftime('%d/%b/%Y')
                        tipo = self.model.tipos_analisis()
                        retorno = self.orden.cargar_orden(
                            cliente, ahora, nro, tipo)
                        validacion = retorno[0].upper()
                        etipo = tipo[int(retorno[1]) - 1]
                        if (validacion == 'S' or validacion == 'SI'):
                            cod_o = 'OT_' + str(nro)
                            new_paciente = OrdenModel(ahora, nro,
                                                      cliente['codigo'], etipo,
                                                      cod_o)
                            exit = self.model.cargar_orden(new_paciente, cod_o)
                            self.orden.mostrar_msg(exit)
                            consulta = self.orden.cargar_otro().upper()
                            if (consulta == 'S' or consulta == 'SI'):
                                pass
                            else:
                                loop = False
                        else:
                            msg = 'Operacion Cancelada'
                            self.orden.mostrar_msg2(msg)
                            loop = False
            else:
                msg = 'No hay mas cupos disponibles para hoy'
                self.orden.mostrar_msg2(msg)

        except Exception as e:
            raise ('Error Fatal', e)

    def listar_orden(self):
        return self.model.listar_ordenes()
        # self.orden.listar_ordeness(ob)

    def orden_list(self, lang):
        '''funcion de orden superior para controlar las ordenes'''
        def listar_orden_pendiente():
            return self.model.listar_ordenes()

        def listar_orden_finalizada():
            return self.model.listar_ordenes_finalizadas()

        lang_func = {
            'pen': listar_orden_pendiente,
            'fin': listar_orden_finalizada
        }
        return lang_func[lang]()

        # self.orden.listar_ordeness(ob)

        # self.orden.listar_ordeness_finalizadas(ob)

    def buscar_orden(self, codigo):
        # codigo = self.orden.solicitar_codigo()
        return self.model.buscar_orden(codigo)
        # self.orden.mostrar_resultado(orden)

    def atender_orden(self, codigo):
        # codigo = self.orden.solicitar_codigo()
        orden = self.model.buscar_orden_modif(codigo)
        orden.estado = 'Finalizado'
        orden.fecha = date.today().strftime('%d/%b/%Y')
        self.model.cargar_orden(orden, orden.cod_orden)
 def __init__(self):
     self.var = Paciente('', '', 0, '', '', '', '', '')
     #self.view = View()
     self.util = Util()