private void AnyadirVisita() { Paciente paciente; Medico medico; string motivoVisita, diagnostico; byte numPaciente, numMedico; if (cantidadVisitas < CAPACIDAD_VISITAS) { Console.WriteLine(); Console.Write("> Marque U si es un episodio de Urgencias " + "en otro caso se consignará como Consulta Planificada: "); ConsoleKeyInfo indicaUrgencias = Console.ReadKey(); Console.WriteLine(); Console.Write("Elija el código del paciente, tomando como" + " referencia el listado mostrado a continuación:\n"); MostrarPacientes(); do { Console.Write("\n> Indique el ID del paciente del listado" + " superior: "); numPaciente = Convert.ToByte(Console.ReadLine()); }while (numPaciente > cantidadPacientes); paciente = DevolverPaciente(numPaciente); if (paciente == null) { Console.WriteLine("Paciente no indicado."); return; } Console.WriteLine(); Console.WriteLine("Elija el código del especialista, " + "tomando como referencia el siguiente listado de médicos " + "disponibles."); MostrarMedicos(); Console.Write("> Indique el ID del médico del listado superior: "); numMedico = Convert.ToByte(Console.ReadLine()); medico = DevolverMedico(numMedico); motivoVisita = Pedir("> Motivo de la visita: "); diagnostico = Pedir("> Diagnóstico: "); if (indicaUrgencias.Key == ConsoleKey.U) { Console.WriteLine(); Console.WriteLine("> Marque X si se ha planificado una " + "revisión o cualquier tecla en otro caso:"); ConsoleKeyInfo indicaRevision = Console.ReadKey(); if (indicaRevision.Key == ConsoleKey.X) { Console.WriteLine(">>> Visita grabada como URGENCIA " + "CON revisión posterior"); visitas[cantidadVisitas] = new Urgencias(paciente, medico, motivoVisita, diagnostico, true); } else { Console.WriteLine("\n>>> Visita grabada como URGENCIA " + "sin revisión posterior"); visitas[cantidadVisitas] = new Urgencias(paciente, medico, motivoVisita, diagnostico, false); } cantidadVisitas++; } else { Console.WriteLine("\n>>> Visita grabada como consulta " + "planificada"); visitas[cantidadVisitas] = new Planificada(paciente, medico, motivoVisita, diagnostico); cantidadVisitas++; } } else { if (cantidadVisitas >= CAPACIDAD_VISITAS - 1) { Console.WriteLine("No se pueden añadir más visitas"); } } }
public void Ejecutar() { Persona[] medicos = new Medico[2]; medicos[0] = new Medico("Wazowski, Mike", 0001, "Oftalmólog"); medicos[1] = new Medico("Sullivan, James P.", 0002); Persona enfer = new Enfermero("Boggs, Randall", 0003); const int SIZE = 10000; Persona[] pacientes = new Paciente[SIZE]; Visita[] visitas = new Visita[SIZE]; int pacienteAcutal = 0; int visitaAcutal = 0; char opcion; do { Console.WriteLine("MENU"); Console.WriteLine("1. Añadir Paciente"); Console.WriteLine("2. Buscar Paciente"); Console.WriteLine("3. Añadir Visita"); Console.WriteLine("4. Ver todas las visitas"); Console.WriteLine("Q. Salir"); Console.Write("Opción: "); opcion = Convert.ToChar(Console.ReadLine().ToUpper()); switch (opcion) { case '1': if (pacienteAcutal > SIZE) { Console.WriteLine("Base de datos llena"); } else { Console.Write("Introduce Apellidos y Nombre ({0}): ", pacienteAcutal + 1); string nombre = Console.ReadLine(); Console.Write("Introduce el Código ({0}): ", pacienteAcutal + 1); int codigo = Convert.ToInt32(Console.ReadLine()); pacientes[pacienteAcutal] = new Paciente( nombre, codigo); pacienteAcutal++; Console.WriteLine("Usuario añadido correctamente!!!"); } break; case '2': if (pacienteAcutal == 0) { Console.WriteLine("No hay pacientes"); } else { Console.Write("Introduce que buscar: "); string texto = Console.ReadLine().ToUpper(); bool encontrado = false; for (int i = 0; i < pacienteAcutal; i++) { if (pacientes[i].NombreApellidos.ToUpper(). Contains(texto)) { encontrado = true; Console.WriteLine(pacientes[i]); } } if (!encontrado) { Console.WriteLine("No hay resultados"); } } break; case '3': char tipo; do { Console.WriteLine("Tipo de visita: "); Console.WriteLine("1. Planificada"); Console.WriteLine("2. Urgencia"); Console.Write("Opción: "); tipo = Convert.ToChar(Console.ReadLine()); } while (tipo != '1' && tipo != '2'); Console.Write("Introduce el código del paciente: "); int codigoPac = Convert.ToInt32(Console.ReadLine()); Console.Write("Introduce el código del médico: "); int codigoMed = Convert.ToInt32(Console.ReadLine()); Console.Write("Introduce el motivo de la visita: "); string visita = Console.ReadLine(); Console.Write("Introduce el diagnostivo: "); string diagnostico = Console.ReadLine(); bool posterior = false; if (tipo == '2') { Console.Write("¿Se ha planificado una visita" + " posterior? (S/N): "); posterior = Convert.ToChar( Console.ReadLine().ToUpper()) == 'S' ? true : false; } bool listo = false, pacienteOk = false, medicoOk = false; int j = 0; while (!listo && j < pacienteAcutal) { if (pacientes[j].Codigo.CompareTo(codigoPac) == 0) { pacienteOk = true; int k = 0; while (!listo && k < medicos.Length) { if (medicos[k].Codigo.CompareTo(codigoMed) == 0) { medicoOk = true; if (tipo == '1') { visitas[visitaAcutal] = new Planificada( (Paciente)pacientes[j], (Medico)medicos[k], visita, diagnostico); } else { visitas[visitaAcutal] = new Urgencias( (Paciente)pacientes[j], (Medico)medicos[k], visita, diagnostico, posterior); } } k++; } } j++; } if (pacienteOk && medicoOk) { visitaAcutal++; Console.WriteLine("Visita añadida correctamente!!!"); } else { Console.WriteLine("Código Erroneo"); } break; case '4': if (visitaAcutal == 0) { Console.WriteLine("No hay visitas"); } else { Console.WriteLine("---------VISITAS---------"); for (int i = 0; i < visitaAcutal; i++) { Console.WriteLine(visitas[i]); } } break; case 'Q': Console.WriteLine("Hasta luego!!!"); break; default: Console.WriteLine("Opción desconocida"); break; } Console.WriteLine(); } while (opcion != 'Q'); }
public void Ejecutar() { pacientes = new Pacientes[MAX]; medicos = new Medicos[MAX]; visitas = new Visitas[MAX]; medicos[0] = new Medicos("Garcia Lozano, Alfonso", 12345678, "Oftalmologia"); medicos[1] = new Medicos("Perez Fernandez, Paula", 93663379); Enfermeros enfermero = new Enfermeros("Martinez Torrent", 34895045); int opcion; do { Console.WriteLine("1 - Añadir un paciente"); Console.WriteLine("2 - Buscar un paciente"); Console.WriteLine("3 - Añadir una visita"); Console.WriteLine("4 - Ver todas las visitas"); Console.WriteLine("0 - Salir"); opcion = Convert.ToInt32(Console.ReadLine()); switch (opcion) { default: Console.WriteLine("Opcion no valida"); break; case 0: Console.WriteLine("Hasta la proxima!"); break; case 1: if (contadorPacientes >= MAX) { Console.WriteLine("Base de datos completa"); } else { Console.Write("Nombre del paciente: "); string nombre = Console.ReadLine(); Console.Write("Apellidos del paciente: "); string apellidos = Console.ReadLine(); Console.Write("Codigo: "); int codigo = Convert.ToInt32(Console.ReadLine()); pacientes[contadorPacientes] = new Pacientes(apellidos + ", " + nombre, codigo); contadorPacientes++; } break; case 2: if (contadorPacientes == 0) { Console.WriteLine("No existen pacientes"); } else { Console.Write("Nombre o apellidos del paciente: "); string texto = Console.ReadLine(); for (int i = 0; i < contadorPacientes; i++) { if (pacientes[i].Nombre.Contains(texto)) { Console.WriteLine(pacientes[i].ToString()); } } } break; case 3: if (contadorVisitas >= MAX) { Console.WriteLine("Base de datos completa"); } else { Console.Write("Numero de paciente: "); int numero = Convert.ToInt32(Console.ReadLine()) - 1; Console.Write("Numero de medico: "); int numeroMedico = Convert.ToInt32(Console.ReadLine()) - 1; Console.Write("Movito de la visita: "); string motivo = Console.ReadLine(); Console.Write("Diagnostico: "); string diagnostico = Console.ReadLine(); Console.Write("¿Urgencia o planificada? (U/P): "); char opcionVisita = Convert.ToChar(Console.ReadLine()); switch (opcionVisita) { case 'U': bool visitaPosterior = false; Console.Write("Necesita visita posterior (S/N): "); if (Convert.ToChar(Console.ReadLine()) == 'S') { visitaPosterior = true; } visitas[contadorVisitas] = new Urgencias(pacientes[numero], medicos[numeroMedico], DateTime.Now, motivo, diagnostico, visitaPosterior); break; case 'P': visitas[contadorVisitas] = new Planificadas(pacientes[numero], medicos[numeroMedico], DateTime.Now, motivo, diagnostico); break; } contadorVisitas++; } break; case 4: if (contadorVisitas == 0) { Console.WriteLine("No existen visitas"); } else { for (int i = 0; i < contadorVisitas; i++) { Console.WriteLine(visitas[i].ToString()); } } break; } }while (opcion != 0); }