public static void AgregarVisita( Paciente[] pacientes, Medico[] medicos, Visita[] visitas, ref int contadorVisitas, int codigoMax) { Console.Write("¿Urgencia o planificada?"); string tipo = Console.ReadLine().ToLower(); int codPaciente; do { Console.Write("Código del paciente: "); codPaciente = Convert.ToInt32(Console.ReadLine()); if (codPaciente >= codigoMax) { Console.WriteLine("Código de paciente incorrecto"); } } while(codPaciente >= codigoMax); Paciente pacienteActual = pacientes[0]; foreach (Paciente p in pacientes) { if (p.Codigo == codPaciente) { pacienteActual = p; } } int codMedico; do { Console.Write("Código del médico: "); codMedico = Convert.ToInt32(Console.ReadLine()); if (codMedico != 1 || codMedico != 2) { Console.WriteLine("Código de médico incorrecto"); } } while(codMedico != 1 || codMedico != 2); Medico medicoActual; if (codMedico == 1) { medicoActual = medicos[0]; } else { medicoActual = medicos[1]; } Console.Write("Motivo de la visita: "); string motivo = Console.ReadLine(); Console.Write("Diagnóstico: "); string diagnostico = Console.ReadLine(); Visita visita; if (tipo.Contains("urgencia")) { Console.Write("¿Ha planificado una visita posterior? "); string respuesta = Console.ReadLine().ToLower(); bool visitaPost = respuesta.Contains("s"); visita = new Urgencia(pacienteActual, medicoActual, motivo, diagnostico, visitaPost); } else { visita = new Planificada(pacienteActual, medicoActual, motivo, diagnostico); } visitas[contadorVisitas] = visita; contadorVisitas++; }
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'); }
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"); } } }