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
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
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
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
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
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
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)
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
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 ...")
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)
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
from paciente import Paciente lPacient = Paciente('Eduardo', 'masculino', 181, 113, 24) lPacient.consomeKcaloria(800) lPacient.consomeKcaloria(2000)
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')
#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: '))
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
def cargarPerfilDeUnPaciente(db, raiz, nombre, apellidos): paciente = Paciente(db, nombre, apellidos) nueva = VentanaPerfilPaciente(raiz, db, paciente)
def setUp(self): self.paciente = Paciente("Pedro", "Masculino", 1989, "123456")