Ejemplo n.º 1
0
	def it_inserir_consultas(self): #teste
	
		consultorio = Consultorio('001','103','Pediatria')
		prontuario = Prontuario('001', 'historico', '001')	
		medico = Medico('001', 'Hugo', 'Rua B', '10', 'Centro', 'SJB', 'RJ', '98562312','00100200379', '08956782', '1245', 'pediatra', '11/05/1980')
		convenio = Convenio('001', 'Empresa', 'Unimed')		
		paciente = Paciente('001', 'Manoel', 'Rua A', '12', 'Centro', 'Campos', 'RJ', '98213484', '03945698778', '056568311', '12/03/83', convenio, prontuario)		
		consulta = Consulta('001',paciente, medico, consultorio, prontuario,'18/02/2014', '13:00', 'Bom')
		paciente.inserirConsulta(paciente)#testando o metodo
		(paciente in paciente.consultas) |should| equal_to(True) #verifica se consulta esta na lista de consulta
Ejemplo n.º 2
0
class Teste_Paciente(unittest.TestCase):

    def setUp(self):
        self.paciente = Paciente("Pedro", "Masculino", 1989, "123456")

    def test_atributos(self):
        self.paciente.nome |should| equal_to("Pedro")
        self.paciente.sexo |should| equal_to("Masculino")
        self.paciente.ano_de_nascimento |should| equal_to(1989)
        self.paciente.codigo_do_seguro_social |should| equal_to("123456")
        self.paciente.funcionarios |should| equal_to([])

    def test_calcular_idade(self):
        self.paciente.calcular_idade() |should| equal_to(24)
 def insertar(self, nombre, apellido, fecha_nacimiento, sexo,
              nombre_usuario, pwd, telefono):
     id = len(self.pacientes)
     self.pacientes.append(
         Paciente(id, nombre, apellido, fecha_nacimiento, sexo,
                  nombre_usuario, pwd, telefono))
     return id
Ejemplo n.º 4
0
 def get_all(self):
     ### Retorna una lista de objetos Paciente con todas los pacientes que haya guardadas en la BD###
     lista_pacientes = []
     consulta = "SELECT id, apellido, nombre, dni, telefono, mail FROM pacientes;"
     self.cursor.execute(consulta)
     todos_los_pacientes = self.cursor.fetchall()
     for id, apellido, nombre, dni, telefono, mail in todos_los_pacientes:
         if mail:
             #Crear paciente sin mail
             lista_pacientes.append(
                 Paciente(
                     apellido, nombre, dni, telefono, mail,
                     id))  #probar y revisar cuando este el objeto paciente
         else:
             lista_pacientes.append(
                 Paciente(apellido, nombre, dni, telefono, mail, id))
     return lista_pacientes
Ejemplo n.º 5
0
 def crearPacienteDesdeFormulario(self):
     #obtiene los valores de los campos del formulario
     #para crear un nuevo Paciente
     values = [e.get() for e in self.entries]
     paciente=None
     try:
         paciente = Paciente(*values)
     except ValueError as e:
         messagebox.showerror("Error de Validación", str(e), parent=self)
     return paciente
Ejemplo n.º 6
0
def insert_file_content(file_path: str,
                        sep: str = "|",
                        model: str = "") -> bool:
    f = open(file_path, "r")

    # jump first line
    line = f.readline()

    line = f.readline()

    count = 1

    while line:
        arr = line.split(sep)

        if model == "exame":
            Exame.create_instance(arr, count)

        elif model == "paciente":
            Paciente.create_instance(arr)

        elif model == "clinica":
            Clinica.create_instance(arr)

        elif model == "atendimento":
            Atendimento.create_instance(arr)

        elif model == "analito":
            Analito.create_instance(arr)

        else:
            raise Exception("Invalid Model: {0}".format(model))

        count += 1

        if count % 100 == 0:
            print("{0} {1} instances inserted".format(count, model))

        line = f.readline()

    return count
Ejemplo n.º 7
0
 def get_one(self, id_paciente):
     consulta = "SELECT id, apellido, nombre, dni, telefono, mail FROM pacientes WHERE id=?;"
     self.cursor.execute(consulta, [id_paciente])
     datos_paciente = self.cursor.fetchone()
     id = datos_paciente[0]
     apellido = datos_paciente[1]
     nombre = datos_paciente[2]
     dni = datos_paciente[3]
     telefono = datos_paciente[4]
     mail = datos_paciente[5]
     p = Paciente(apellido, nombre, dni, telefono, mail, id)
     return p
Ejemplo n.º 8
0
	def it_consultar_consultas(self):

		consultorio = Consultorio('001','103','Pediatria')
		prontuario = Prontuario('001', 'historico', '001')	
		medico = Medico('001', 'Hugo', 'Rua B', '10', 'Centro', 'SJB', 'RJ', '98562312','00100200379', '08956782', '1245', 'pediatra', '11/05/1980')
		convenio = Convenio('001', 'Empresa', 'Unimed')		
		paciente = Paciente('001', 'Manoel', 'Rua A', '12', 'Centro', 'Campos', 'RJ', '98213484', '03945698778', '056568311', '12/03/83', convenio, prontuario)		
		consulta = Consulta('001',paciente, medico, consultorio, prontuario,'18/02/2014', '13:00', 'Bom')
		consulta1 = Consulta('002',paciente, medico, consultorio, prontuario,'20/02/2014', '15:00', 'Ruim')

		paciente.inserirConsulta(consulta)
		paciente.inserirConsulta(consulta1)
		paciente.consultarConsulta('20/02/2014') |should| equal_to(consulta1)
Ejemplo n.º 9
0
    def preencheListaPaciente(self):
        print("entrou ")

        paciente = []

        for i in range(10):
            paciente.append(Paciente())
            paciente[i].nome = "Joao" + str(i)
            paciente[i].telefone = "981855228"
            paciente[i].endereco = "rua" + str(i)
            paciente[i].email = paciente[i].nome + "@gmail.com"
            self.listaPaciente.append(paciente[i])
            print(paciente[i].nome)

        for i in range(10):
            self.listaJson.append(json.dumps(self.listaPaciente[i].__dict__))
 def crearPacienteDesdeFormulario(self):
     values = [e.get() for e in self.entries]
     paciente = None
     if '' in values:
         messagebox.showerror("Error de Validación",
                              "Todos los campos son obligatorios")
     else:
         try:
             paciente = Paciente(values[0], values[1], values[2],
                                 float(values[3]), float(values[4]))
         except ValueError as e:
             mensaje = str(e)
             if "could not convert string to float" in str(e):
                 mensaje = "Formato de peso y/o altura no validos"
             messagebox.showerror("Error de Validación",
                                  mensaje,
                                  parent=self)
     return paciente
Ejemplo n.º 11
0
def executar():
    paciente_teste = Paciente(
        dict(medicamento="Remédio pra dor",
             quantidade="1",
             validade="18/04/21",
             cpf="01234"), dict(nome="Maria", cpf="01234"))

    farmaceutica_teste = Farmaceutica()
    farmaceutica_teste.receber_receita(paciente_teste.receita)

    if farmaceutica_teste.validar_receita(paciente_teste.documento):
        print("Sua receita foi validada, checando o estoque ...")
        if farmaceutica_teste.verificar_estoque():
            farmaceutica_teste.retirar_estoque()
            farmaceutica_teste.entregar_medicamento()
        else:
            print(
                "Infelizmente não há estoque de medicamento o suficiente para a sua receita ..."
            )
    else:
        print("Sua receita foi invalidada ...")
Ejemplo n.º 12
0
 def alta_pac(self, nom, apell, dire, ciudad, cp, telf, email, sang, recep):
     nom = (nom + ' ' + apell).title()
     id_p = len(self.pacientes.keys()) + 1
     pac = Paciente(id_p, nom.title(), dire, ciudad, cp, telf, email, sang)
     recep.altas(self.pacientes, pac, id_p)
Ejemplo n.º 13
0
    def lectura(self, especialidad, info,
                medicina):  #tiene como parametros los dos archivos .csv
        especialidad = pd.read_csv(
            especialidad, sep=';',
            encoding='latin-1')  #lectura para el vocabulario español
        info = pd.read_csv(info, sep=';', encoding='latin-1')
        medicina = pd.read_csv(medicina, sep=';', encoding='latin-1')

        dic_especialidades = {}  #creo diccinarios vacios
        dic_medicas = {}
        dic_pacientes = {}
        dic_enfermeras = {}
        dic_recepcionistas = {}
        dic_medicamentos = {}

        #CREACIÓN DICCIONARIO ESPECIALIDADES
        for row in especialidad.itertuples():  #recorro el archivo
            dic_especialidades[row.Nombre] = Especialidad(
                row.Codigo, row.Nombre
            )  #palabre clave es el nombre de la especialidad y los elementos son el nombre y el código

        #CREACCION DICCIONARIO PACIENTES, MÉDICAS, ENFERMERAS Y RECEPCIONISTAS
        grupo_sanguineo = ('AB+', 'AB-', 'A+', 'A-', 'B+', 'B-', '0+', '0-'
                           )  #tupla  con los grupos sanguineos
        cat = [
        ]  #lista vacía donde iremos introduciendo las categorias de las enfermeras
        jefas = 3
        practicantes = 5

        turnos = ['1:matutino', '2:verspertino', '3:nocturno',
                  '4:rotatorio']  #turnos de recepcionaistas
        turno = 0

        id_m = 0  #identificadores medica, pacientes, enfermeras y recepcionistas
        id_p = 0
        id_e = 0
        id_r = 0
        espec = 0

        for row in info.itertuples():  #recorro el archivo .csv
            #establezco 5 condiciones para diferenciar entre los 5 tipos que hay en el archivo
            #medicas
            if row.Tipo == 'M':
                id_m += 1  #voy sumando 1 a cada interacción de la condición
                nombre = row.Nombre + ' ' + row.Apellido  #guardo en la variable nombre tanto el Nombre como el Apellido de la persona separados por un espacio
                password = self.crea_password(row.Nombre, row.Apellido,
                                              row.Telefono)
                #distribución de las espcecialidades en orden
                if espec < len(dic_especialidades.keys()
                               ):  #que recorro el diccionario
                    especialidad = list(dic_especialidades.keys())[espec]
                    espec += 1  #le voy sumando uno y va cambiando la posición que le vpy asignando del diccionario
                else:
                    espec = 0  #una vez que haya recorrido todo el diccionario pongo la variable en cero para que vuela a empezar
                    especialidad = list(dic_especialidades.keys())[espec]
                    espec = 1
                m = Medica(
                    id_m, nombre, row.Direccion, row.Ciudad, row.CP,
                    row.Telefono, row.Email, especialidad, password
                )  #objeto de la clase Medica con sus atributos correpondientes
                dic_medicas[
                    id_m] = m  #identificador como clave y objeto con toda la información como elemento
            #pacientes
            elif row.Tipo == 'P':  #mismo procedimiento para pacientes
                id_p += 1
                nombre = row.Nombre + ' ' + row.Apellido
                p = Paciente(id_p, nombre, row.Direccion, row.Ciudad, row.CP,
                             row.Telefono, row.Email,
                             random.choice(grupo_sanguineo))
                dic_pacientes[id_p] = p
            #enfermeras
            elif row.Tipo == 'E':
                id_e += 1
                nombre = row.Nombre + ' ' + row.Apellido
                password = self.crea_password(row.Nombre, row.Apellido,
                                              row.Telefono)
                #repartir las categorias entre las enfermeras
                categorias = [
                    'P:practicante', 'J:enfermera junior',
                    'M:enfermera senior', 'JE:jefa de enfermeras'
                ]  #categorias de enfermeras
                #asignación de las categorías de las enfermeras, solo puede haber 3 jefas y 5 practicantes
                if len(cat) < jefas * len(
                        categorias
                ):  #pongo de límite hasta las 12 posiciones ya que ahi es cuando se cumple que haya 3 jefas
                    for i in range(len(categorias)):
                        cat.append(
                            categorias[i]
                        )  #voy añadiendo a una lista vacía las diferentes categorías y una vez que la tenga completa iré rellenando el diccionario con lasdiferentes posiciones de esta lista
                elif jefas * len(categorias) < len(cat) < practicantes * len(
                        categorias
                ):  #pongo de limite 20 posicinoes ya que así ya habrá 5 practicantes
                    categorias.remove(
                        'JE:jefa de enfermeras'
                    )  #elemino la categoría jefa para que no me la siga añadiendo a la lista
                    for i in range(len(categorias)):
                        cat.append(categorias[i])
                else:
                    categorias.remove('JE:jefa de enfermeras')
                    categorias.remove(
                        'P:practicante'
                    )  #vuelvo a eliminar jefa y tamb´ién practicante para que solo me añada las restantes que queden
                    for i in range(len(categorias)):
                        cat.append(categorias[i])
                e = Enfermera(id_e, nombre, row.Direccion, row.Ciudad, row.CP,
                              row.Telefono, row.Email, password, cat[id_e - 1])
                dic_enfermeras[id_e] = e
            #recepcionistas
            elif row.Tipo == 'R':
                id_r += 1
                nombre = row.Nombre + ' ' + row.Apellido
                password = self.crea_password(row.Nombre, row.Apellido,
                                              row.Telefono)
                if turno < 4:  #tengo 4 opciones de turno diferente, las posiciones de la lista empiezan en cero
                    #voy asignando los 4 turnos disponibles que hay y una vez que llegue a 4, pongo la varible como cero y que me vuelva a recorrer la lista
                    r = Recepcionista(id_r, nombre, row.Direccion, row.Ciudad,
                                      row.CP, row.Telefono, row.Email,
                                      turnos[turno], password)
                    turno += 1
                elif turno >= 4:
                    turno = 0
                    r = Recepcionista(id_r, nombre, row.Direccion, row.Ciudad,
                                      row.CP, row.Telefono, row.Email,
                                      turnos[turno], password)
                    turno = 1
                dic_recepcionistas[id_r] = r
            #hospital
            elif row.Tipo == 'H':  #informacion hospital
                lista_hosp = [
                    row.Nombre, row.Direccion, row.Ciudad, row.CP, row.Telefono
                ]  #lista con la información referente al hospital

        for row in medicina.itertuples():
            dic_medicamentos[row.Codigo] = Medicamento(row.Codigo,
                                                       row.Principio_Activo,
                                                       row.Marca,
                                                       row.Laboratorio)

        return dic_especialidades, dic_medicas, dic_pacientes, dic_enfermeras, dic_recepcionistas, dic_medicamentos, lista_hosp  #el método me devuelve los 3 diccionarios más la lista de info hospital
Ejemplo n.º 14
0
from paciente import Paciente

lPacient = Paciente('Eduardo', 'masculino', 181, 113, 24)

lPacient.consomeKcaloria(800)
lPacient.consomeKcaloria(2000)
Ejemplo n.º 15
0
def main():
    util=Utilidades() #creo objeto de la clase Utilidades
    dic_especialidades,dic_medicas,dic_pacientes,dic_enfermeras,dic_recepcionistas,dic_medicamentos,lista_hosp=util.lectura('especialidades.csv','informacion.csv','medicina.csv') #llamada al metodo de Utilidades para guardar lo que nos devuelve en variables 
    hosp=Hospital(lista_hosp[0],lista_hosp[1],lista_hosp[2],lista_hosp[3],lista_hosp[4],None,dic_pacientes,dic_medicas,dic_especialidades,dic_enfermeras,dic_recepcionistas,dic_medicamentos) #creo el objeto de hospital donde los primeros parámetros los toma de la lista de info hospital
    recep=dic_recepcionistas[1] #objeto de la clase Recepcionista
    enf=dic_enfermeras[1]
    opcion=0
    lista_info=[]
    #MENU DE OPCIONES
    while opcion!=5: 
        try: 
            print('\nMenú de opciones\n 1) Altas\n 2) Consultas\n 3) Revisiones\n 4)Archivos\n 5) Salida\n')
            opcion=int(input('Seleccione una opción: '))
            if opcion==1:
                #MENU ALTAS
                opcion1=0
                while opcion1!=7:
                    try:
                        print('\nMenú de altas\n 1) Médica\n 2) Paciente\n 3) Enfermeras\n 4) Recepcionista\n 5)Especialidad\n 6)Medicamento\n 7)Regresar al menú de opciones')
                        opcion1=int(input('Seleccione una opción: ')) #input ha de ser un integer, sino salta a la expeción
                        if opcion1==1: #ALTA MEDICA
                                
                            print('\nInformación de la médica a dar de alta: ')
                            #pido por pantalla todos los inputs necesarios para dar de alta una médica, en este caso no ponemos criterios de entrada por pantalla
                            nombre=input('-> Nombre: ').title()
                            apellido=input('-> Primer apellido: ').title()
                            nom=nombre+' '+apellido #dado como un unico parametro dentro de los atributos
                            direccion=input('-> Dirección: ')
                            ciudad=input('-> Ciudad: ')
                            cp=input('-> CP: ')
                            telf=input('-> Telf: ')
                            email=input('-> Email: ')
                            especialidad=input('-> Especialidad: ') #ningún criterio de entrada de especialidad, no se especifica que tenga que estar dentro del dic_especialidades
                            
                            id_m=len(dic_medicas.keys())+1 #el identificador será el siguiente a tantas claves del diccionario habrá
                            password=util.crea_password(nombre,apellido,telf) #creo la contraseña con el metodo de la clase utilidades
                            med=Medica(id_m,nom,direccion,ciudad,cp,telf,email,especialidad,password) #creo el objeto de la clase médica
                            hosp.metodo_alta(med,id_m,recep,'med') #llamada al método de hospital
                            print('Médica dada de alta con éxito')
                        
                        
                        elif opcion1==2: #ALTA PACIENTE
                            
                            print('\nInformación de la paciente a dar de alta: ')
                            nombre=input('-> Nombre: ').title()
                            apellido=input('-> Primer apellido: ').title()
                            nom=nombre+' '+apellido
                            direccion=input('-> Dirección: ')
                            ciudad=input('-> Ciudad: ')
                            cp=input('-> CP: ')
                            telf=input('-> Telf: ')
                            email=input('-> Email: ')
                            
                            grupos_sanguineos=('AB+','AB-','A+','A-','B+','B-','0+','0-')
                            while True:
                                grupo_sanguineo=input('-> Grupo Sanguíneo: ') #compruebo que el grupo sanguieno introducido por pantalla estea dentro de la tupla
                                if grupo_sanguineo in grupos_sanguineos:
                                    id_p=len(dic_pacientes.keys())+1
                                    pac=Paciente(id_p,nom,direccion,ciudad,cp,telf,email,grupo_sanguineo)
                                    hosp.metodo_alta(pac,id_p,recep,'pac')
                                    print('Paciente dada de alta con éxito')
                                    break
                                else: 
                                    print('No existe tal grupo sanguíneo')
                                    
                        elif opcion1==3: #ALTA ENFERMERA
                            
                            print('\nInformación de la enfermera a dar de alta: ')
                            nombre=input('-> Nombre: ').title()
                            apellido=input('-> Primer apellido: ').title()
                            nom=nombre+' '+apellido
                            direccion=input('-> Dirección: ')
                            ciudad=input('-> Ciudad: ')
                            cp=input('-> CP: ')
                            telf=input('-> Telf: ')
                            email=input('-> Email: ')
                            
                            id_e=len(dic_enfermeras.keys())+1 #el identificador será el siguiente a tantas claves del diccionario habrá
                            password=util.crea_password(nombre,apellido,telf)
                            
                            categorias_disponibles=['J:enfermera junior','M:enfermera senior'] #solo me quedan por asigar estas dos categorias
                            if categorias_disponibles[0] in dic_enfermeras[-1]:
                                enf=Enfermera(id_e,nom,direccion,ciudad,cp,telf,email,password,categorias_disponibles[1])
                            elif categorias_disponibles[1] in dic_enfermeras[-1]:
                                enf=Enfermera(id_e,nom,direccion,ciudad,cp,telf,email,password,categorias_disponibles[0])
                                
                            hosp.metodo_alta(enf,id_e,recep,'enf')
                            print('Enfermera dada de alta con éxito')
                            
                        elif opcion1==4: # ALTA RECEPCIONISTA
                            
                            print('\nInformación de la recepcionista a dar de alta: ')
                            nombre=input('-> Nombre: ').title()
                            apellido=input('-> Primer apellido: ').title()
                            nom=nombre+' '+apellido
                            direccion=input('-> Dirección: ')
                            ciudad=input('-> Ciudad: ')
                            cp=input('-> CP: ')
                            telf=input('-> Telf: ')
                            email=input('-> Email: ')
                            
                            id_r=len(dic_recepcionistas.keys())+1 #el identificador será el siguiente a tantas claves del diccionario habrá
                            password=util.crea_password(nombre,apellido,telf)
                            
                            #NO SE COMO OTORGAR LOS TURNOS
                            turnos=['1:matutino','2:verspertino','3:nocturno','4:rotatorio'] #turnos de recepcionistas
                            for i in turnos:
                                if turnos[i] is in dic_recepcionistas[-1]:
                                    rec=Recepcionista(id_r,nom,direccion,ciudad,cp,telf,email,password,turno[i-1])
        
                            hosp.metodo_alta(rec,id_r,recep,'recep')
                            print('Recepcionista dada de alta con éxito')
                            
                        elif opcion1==5: #ALTA ESPECIALIDAD
                             print('Información de la especialidad a dar de alta: ')
                             especialidad=input('-> Nombre: ').title()
                             if especialidad is in dic.especialidades:
                                 print('La especialidad ya existe')
                             elif especialidad is not in dic_especialidades:
                                try:
                                    codigo=int(input('Introduzca el codigo de la especialidad: '))
                                    espe=Especialidad(codigo,nombre)
                                    hosp.metodo_altas(espe,codigo,recep,'espe')
                                except ValueError:
                                    print('EL codigo no es un numero')
                                 
                        elif opcion1==6: #ALTA MEDICAMENTO
                            print('Infromación sobre le medicamento a dar de alta: ')
                            codigo=input('Código: ')
                            princ_activ=input('Principio Activo: ')
                            marca=input('Marca: ')
                            laboratorio=('Laboratorio: ')
                            
                            #FALTA COMPROBAR SI YA EXISTE Y NOTIFICAR
                            medicamento=Medicamento(codigo,princ_activ,marca,laboratorio)
                            hosp.metodo_alta(medicamento,codigo,recep,'medicamento')
                            print('Medicamento dado de alta con éxito')
                            
                        elif opcion1<1 or opcion1>6: #SALIDA MENU ALTAS
                            print('La opcion seleccionada no está disponible')
                            
                    except ValueError:
                        print('Opción seleccionada no válida')
                        
                print('Ha salido del menú de altas')
                            
                                
              elif opcion==2: #MENU CONSULTAS
                  opcion2=0
                  while opcion2!=7:
                    try:
                        print('\nMenú de consulta\n 1) Médica\n 2) Paciente\n 3) Enfermera\n 4) Recepcionista\n 5)Especialidad\n 6)Medicamento\n 7)Recetas\n 8)Derivaciones 9)Medico por especialidad 10)Regresar al menú de opciones')
                        opcion2=int(input('Seleccione una opción: ')) #input ha de ser un integer, sino salta a la expeción
                        if opcion2==1: #BUSQUEDA MÉDICA
                            opcion3=0
                            while opcion3!=3: 
                                try: 
                                    print('\nOpciones de consulta de médicas\n 1) Por nombre y apellido\n 2) Por número identificador\n 3) Regresar al menú de búsqueda\n')
                                    opcion3=int(input('Seleccione una opción: '))
                                    if opcion3==1: #busqueda medica por nombre
                                        nom=input('Introduzca el nombre y apellido de la médica: ').title()
                                        if nom.replace(' ','').isalpha()==True:
                                            lista_med=[]
                                            med=consulta_dics(lista_med,'med'): 
                                            if med==[]: #si la lista esta vacía quiere decir que no ha encontrado ninguna médica con ese nombre
                                                print('\nNo figura una médica con ese nombre')
                                            else: #la lista no está vacía, hay una o más médicas con el nombre introducido
                                                for i in range(len(med)): #recorro la lista, puede que recorra más posiciones de las que necesito, pero solo me imprimirá las que encuentre en la lista
                                                    print('\n -> ',med[i],'\n') #me imprime una flechita por cada médica que haya
                                        else:
                                            print('Debe introducir letras') #cuando lo introducido no son letras y son números o símbolos
                                        
                                    elif opcion3==2: #busqueda medica por identificador 
                                        try:
                                            id_m=int(input('Introduzca el número identificador: ')) #input ha de ser un número
                                            med=hosp.consulta_ident(id_m,'med') #me devulve el número identificador si existe
                                            if med==None: #no ha encontrado ninguna coincidencia
                                                print('\nNo figura una médica con ese número identificador')
                                            else: #lo ha encontrado
                                                print(med)
                                        except ValueError: #si mete cualquier cosa que no sea un entero
                                            print('\nDebe introducir un número')
                                            
                                    elif opcion3<1 or opcion3>3:
                                        print('\nLa opción seleccionada no está disponible')
                                        
                                        
#PLANTEAR DE NUEVO ELL METODO DE CONSULTA PACIENTES Y ESTRUCTURARLOOOOOOOOOOOOOOO                                        
                                        
                                        
                                              
                        elif opcion2==2: #BUSQUEDA PACIENTE
                            opcion3=0
                            while opcion3!=3: 
                                try: 
                                    print('\nOpciones de consulta de pacientes\n 1) Por nombre y apellido\n 2) Por número identificador\n 3) Regresar al menú de búsqueda\n')
                                    opcion3=int(input('Seleccione una opción: '))
                                    if opcion3==1: #busqueda paciente por nombre
                                        nom=input('Introduzca el nombre y apellido de la paciente: ').title()
                                        if nom.replace(' ','').isalpha()==True: #input han de ser letras
                                            pac=hosp.consulta_dics(nom,recep,dic_pacientes)
                                            if p==[]: #si la lista esta vacía quiere decir que no ha encontrado ninguna paciente con ese nombre
                                                print('\nNo figura una paciente con ese nombre')
                                            else: #la lista no está vacía, hay una o más pacientes con el nombre introducido
                                                for i in range(len(p)): #recorro la lista, puede que recorra más posiciones de las que necesito, pero solo me imprimirá las que encuentre en la lista
                                                    print(' -> ',p[i][i].muestra_datos(),'\n') #me imprime una flechita por cada paciente que haya
                                        else:
                                            print('Debe introducir letras') #cuando lo introducido no son letras y son números o símbolos
                                    elif opcion3==2: #busqueda paciente por identificador
                                        try:
                                            id_p=int(input('Introduzca el número identificador: ')) #input ha de ser un número
                                            p=hosp.ipaciente(id_p) #me devulve el número identificador si existe
                                            if p==None: #no ha encontrado ninguna coincidencia
                                                print('\nNo figura una paciente con ese número identificador')
                                            else: #lo ha encontrado
                                                print(p)
                                        except ValueError: #si mete cualquier cosa que no sea un entero
                                            print('\nDebe introducir un número')
                                            
                                    elif opcion3<1 or opcion3>3:
                                        print('\nLa opción seleccionada no está disponible')
                                        
                                except ValueError: #cuando al introducir la opcion introduzca algo que no sea un entero
                                    print('La opción seleccionada no es válida, por favor, seleccione otra opción')
                            
                        elif opcion2==3: #BUSQUEDA ENFERMERA
                        elif opcion2==4: #BUSQUEDA RECEPCIONISTA   
                        elif opcion2==5: #BUSQUEDA ESPECIALIDAD
                        elif opcion2==6: #BUSQUEDA MEDICAMENTO
                        elif opcion2==7: #BUSQUEDA RECETAS
                        elif opcion2==8: #BUSQUEDA DERIVACIONES
                        elif opcion2==9: #BUSQUEDA MEDICO POR ESPECIALIDAD
                        elif opcion2<0 or opcion2>9: #SALIDA
                            print('la opcion seleccionada no está disponible')
                    except ValueError:
                        print('opcion seleccionada no es valida')

                        elif opcion1==2: #busqueda paciente
                            #MENÚ OPCIONES BÚSQUEDA
                            opcion2=0
                            while opcion2!=3: 
                                try: 
                                    print('\nOpciones de búsqueda\n 1) Por nombre y apellido\n 2) Por número identificador\n 3) Regresar al menú de búsqueda\n')
                                    opcion2=int(input('Seleccione una opción: '))
                                    if opcion2==1: #busqueda paciente por nombre
                                        nom=input('Introduzca el nombre y apellido de la paciente: ').title()
                                        if nom.replace(' ','').isalpha()==True: #input han de ser letras
                                            p=hosp.consulta_paciente(nom,recep,dic_pacientes)
                                            if p==[]: #si la lista esta vacía quiere decir que no ha encontrado ninguna paciente con ese nombre
                                                print('\nNo figura una paciente con ese nombre')
                                            else: #la lista no está vacía, hay una o más pacientes con el nombre introducido
                                                for i in range(len(p)): #recorro la lista, puede que recorra más posiciones de las que necesito, pero solo me imprimirá las que encuentre en la lista
                                                    print(' -> ',p[i][i].muestra_datos(),'\n') #me imprime una flechita por cada paciente que haya
                                        else:
                                            print('Debe introducir letras') #cuando lo introducido no son letras y son números o símbolos
                                    elif opcion2==2: #busqueda paciente por identificador
                                        try:
                                            id_p=int(input('Introduzca el número identificador: ')) #input ha de ser un número
                                            p=hosp.ipaciente(id_p) #me devulve el número identificador si existe
                                            if p==None: #no ha encontrado ninguna coincidencia
                                                print('\nNo figura una paciente con ese número identificador')
                                            else: #lo ha encontrado
                                                print(p)
                                        except ValueError: #si mete cualquier cosa que no sea un entero
                                            print('\nDebe introducir un número')
                                            
                                    elif opcion1<1 or opcion1>3:
                                        print('\nLa opción seleccionada no está disponible')
                                        
                                except ValueError: #cuando al introducir la opcion introduzca algo que no sea un entero
                                    print('La opción seleccionada no es válida, por favor, seleccione otra opción')
                                    
                        elif opcion1==3: #busqueda revisiones
                            opcion2=0
                            while opcion2!=3:
                                try: 
                                    print('\nOpciones de búsqueda de revisiones médicas\n 1) Por nombre y apellido de la paciente\n 2) Por número identificador\n 3) Regresar al menú de búsqueda\n')
                                    opcion2=int(input('Seleccione una opción: '))
                                    
                                    if opcion2==1: 
                                        nom=input('Introduzca el nombre y apellido de la paciente: ').title()
                                        if nom.replace(' ','').isalpha():
                                            for i in dic_pacientes:
                                                if nom in dic_pacientes[i].regresa_nombre():
                                                    pac=dic_pacientes[i] #cada vez que encuentre un paciente en el diccionario con el nombre introducido nos umará uno a b
                                                    b+=1
                                            if b==0: #si no ha encontrado ningun paciente b será cero
                                                print('No existe tal paciente')
                                            elif b!=1: #mas de unx paciente con el nombre introducido
                                                print('Hay',b,'paceintes con el nombre introducido: ')
                                                for i in dic_pacientes:
                                                    if nom in dic_pacientes[i].regresa_nombre():
                                                        print(dic_pacientes[i].muestra_datos()) #me imprime los datos de las pacientes que haya encontrado
                                                id_p=int(input('Introduzca el número identificador de la paciente: ')) #pido por pantalla el número de identificador del paciente que deseemos
                                                pac=dic_pacientes[id_p] #me crea el objeto paciente con el que haya seleccionado
                                                
                                                if hosp.consulta_revmed(nom)==[]: #si la lista de revisiones esta vacía
                                                    print('\nEsta paciente no tiene revisiones médicas')
                                                else: 
                                                    print('\nLas revisiones médicas de la paciente',nom,'son:\n',hosp.consulta_revmed(nom))
                                            else: #si simplemente hay una paciente
                                                if hosp.consulta_revmed(nom)==[]:
                                                    print('\nEsta paciente no tiene revisiones médicas')
                                                else:
                                                    print('\nLas revisiones médicas de la paciente',nom,'son:\n',hosp.consulta_revmed(nom)) 
                                        else:
                                            print('Debe introducir letras') #cuando lo introducido no son letras y son números o símbolos
                                                    
                                    elif opcion2==2:
                                        try: 
                                            ident=int(input('Introduzca el número identificador de la paciente: ')) #directamente a través del número identificador, solo habrá una paciente con tal número
                                            if hosp.irevmed(ident)==[]:
                                                print('Esta paciente no tiene revisiones médicas')
                                            else:
                                                print('Las revisiones médicas de la paciente son:\n',hosp.irevmed(ident))
                                        except ValueError: #si el id no es número
                                            print('\nDebe introducir un número')
                                    elif opcion2<1 or opcion>3:
                                        print('\nLa opción seleccionada no está disponible')
                                      
                                except ValueError: #cuando al introducir la opcion introduzca algo que no sea un entero
                                    print('La opción seleccionada no es válida, por favor, seleccione otra opción')
                         
                        elif opcion1<1 or opcion1>3:
                            print('\nLa opción seleccionada no está disponible')
                                    
                    except ValueError: #cuando al introducir la opcion introduzca algo que no sea un entero
                        print('La opción seleccionada no es válida, por favor, seleccione otra opción')
Ejemplo n.º 16
0
                            #primero pedimos por pantalla los parametros de entrada necesarios para dar de alta a la paciente, que serán practicmente los atributos de dicha clase Paciente
                            print('\nInformación de la paciente a dar de alta: ')
                            nombre=input('-> Nombre: ').title()
                            apellido=input('-> Primer apellido: ').title()
                            nom=nombre+' '+apellido
                            direccion=input('-> Dirección: ')
                            ciudad=input('-> Ciudad: ')
                            cp=input('-> CP: ')
                            telf=input('-> Telf: ')
                            email=input('-> Email: ')
                            grupos_sanguineos=('AB+','AB-','A+','A-','B+','B-','0+','0-')
                            while True:
                                grupo_sanguineo=input('-> Grupo Sanguíneo: ') #compruebo que el grupo sanguieno introducido por pantalla estea dentro de la tupla
                                if grupo_sanguineo in grupos_sanguineos:
                                    id_p=len(dic_pacientes.keys())+1
                                    p=Paciente(id_p,nom,direccion,ciudad,cp,telf,email,grupo_sanguineo)
                                    hosp.alta_paciente(p,id_p,recep)
                                    print('Paciente dada de alta con éxito')
                                    break
                                else: 
                                    print('No existe tal grupo sanguíneo')
                                
#                            nombre=input('-> Nombre: ').title()
#                                if nombre.isalpha()==True and len(nombre)>1:
#                                    apellido=input('-> Primer apellido: ').title()
#                                    if apellido.isalpha()==True:
#                                        nom=nombre+' '+apellido #dadro como un unico parametro dentro de los atributos
#                                        direccion=input('-> Dirección: ')
#                                        ciudad=input('-> Ciudad: ')
#                                        try: 
#                                            cp=int(input('-> CP: '))
Ejemplo n.º 17
0
 def nuevo_paciente(self, apellido, nombre, dni, telefono, mail):
     paciente = Paciente(apellido, nombre, dni, telefono, mail)
     paciente.id = self.r.guardar(paciente)
     #self.pacientes.append(paciente)
     return paciente
Ejemplo n.º 18
0
def cargarPerfilDeUnPaciente(db, raiz, nombre, apellidos):
    paciente = Paciente(db, nombre, apellidos)

    nueva = VentanaPerfilPaciente(raiz, db, paciente)
Ejemplo n.º 19
0
 def setUp(self):
     self.paciente = Paciente("Pedro", "Masculino", 1989, "123456")