예제 #1
0
        static void Main(string[] args)
        {
            MENU();

            Clinica C = new Clinica("C1");

            Servicios S1 = new Servicios("Morales", "Diabetologia", 5);
            Servicios S2 = new Servicios("Jimenez", "Pediatria", 5);
            Servicios S3 = new Servicios("Peña", "Toxicologia", 5);
            Servicios S4 = new Servicios("Contreras", "Neurologia", 5);
            Servicios S5 = new Servicios("Gonzáles", "Infectologia", 5);
            Medico    M1 = new Medico(10, "00:00-08:00", "Martin", "Gomez", 30423395, DateTime.Parse("14/10/1985"), "Pediatria");
            Medico    M2 = new Medico(11, "16:00-00:00", "Pablo", "Fardín", 32456123, DateTime.Parse("24/02/1990"), "Diabetologia");
            Paciente  P1 = new Paciente(45584432, "Martin", "Rodriguez", DateTime.Parse("12/02/2008"), DateTime.Parse("14/06/2020"), "Bronquitis");
            Paciente  P2 = new Paciente(34512347, "Santiago", "Ramirez", DateTime.Parse("11/09/1980"), DateTime.Parse("20/09/2019"), "Diabetes");


            C.AgregarServicio(S1);
            C.AgregarServicio(S2);
            C.AgregarServicio(S3);
            C.AgregarServicio(S4);
            C.AgregarServicio(S5);

            C.AgregarPaciente(P1);
            C.AgregarPaciente(P2);

            S1.AgregarMedico(M1);
            S2.AgregarMedico(M2);


            int opcion = 0;

            do
            {
                try
                {
                    Console.Write("Elija una opción: ");
                    opcion = int.Parse(Console.ReadLine());
                    switch (opcion)
                    {
                    case 1:     //SI ELIGE AGREGAR MEDICO
                        Console.Write("Nombre medico: ");
                        string nombreMed = Console.ReadLine();
                        Console.Write("Apellido: ");
                        string apellidoMed = Console.ReadLine();
                        Console.Write("Dni: ");
                        int dni = int.Parse(Console.ReadLine());
                        Console.Write("Fecha Nacimiento (dd/MM/YYYY): ");
                        DateTime fechaNacimiento = DateTime.Parse(Console.ReadLine());
                        Console.Write("Legajo: ");
                        int legajo = int.Parse(Console.ReadLine());
                        Console.WriteLine("Horarios\nH1- 8:00 a 16:00\nH2- 16:00 a 00:00\nH3-00:00 a 8:00");
                        string horario = null;
                        while (horario == null)
                        {
                            Console.Write("Horario: ");
                            string opcionH = Console.ReadLine().ToUpper();
                            switch (opcionH)
                            {
                            case "H1":
                                horario = "8:00-16:00";
                                break;

                            case "H2":
                                horario = "16:00-00:00";
                                break;

                            case "H3":
                                horario = "00:00-08:00";
                                break;

                            default:
                                Console.WriteLine("Horario Incorrecto");
                                break;
                            }
                        }
                        string es     = Especialidades();
                        bool   existe = false;
                        foreach (Servicios server in C.ListaServicios())
                        {
                            if (server.Especialidad == es)
                            {
                                server.AgregarMedico(new Medico(legajo, horario, nombreMed, apellidoMed, dni, fechaNacimiento, es));
                                existe = true;
                                break;
                            }
                        }
                        if (existe)
                        {
                            Console.WriteLine("Medico agregado");
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menu");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 2:     //SI ELIGE LA OPCION DE BORRAR UN MEDICO
                        Console.Write("Ingrese el legajo del medico a borrar: ");
                        int leg = int.Parse(Console.ReadLine());
                        foreach (Servicios ser in C.ListaServicios())
                        {
                            if (ser.ExisteMedico(leg))
                            {
                                ser.BorrarMedico(leg);
                                Console.WriteLine("Medico borrado satisfactoriamente.");
                                break;
                            }
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menu");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 3:    //SI ELIGE INTERNAR A UN PACIENTE
                        Console.Write("Ingrese DNI del paciente: ");
                        int dniPa = int.Parse(Console.ReadLine());
                        if (C.EsPaciente(dniPa))
                        {
                            Console.Write("Ingrese especialidad del servicio: ");
                            string espeS = Console.ReadLine();
                            if (C.ExisteServicio(espeS))
                            {
                                Servicios s = C.RetornarServicio(espeS);
                                try
                                {
                                    if (s.CupoCama == 0)
                                    {
                                        throw new Exception();
                                    }
                                    Console.Write("Ingrese legajo del medico: ");
                                    int legaMe = int.Parse(Console.ReadLine());
                                    Console.Clear();
                                    if (s.ExisteMedico(legaMe))
                                    {
                                        s.IngresarPaciente(s.RetornarMedico(legaMe), C.RetornarPaciente(dniPa));
                                        Console.WriteLine("Accion concretada correctamente-");
                                        Console.ReadKey();
                                    }
                                    else
                                    {
                                        Console.WriteLine("No existe el medico");
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("No hay cama disponible.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("No existe el servicio");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No existe el paciente");
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menu");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 4:     //SI ELIGE VER LOS DATOS DE LOS MEDICOS DE SERVICIO NOCTURNO
                        ArrayList aux = new ArrayList();
                        foreach (Servicios x in C.TodosServicios())
                        {
                            foreach (Medico m in x.TodosMed())
                            {
                                if (m.Horario == "00:00-08:00")
                                {
                                    if (!aux.Contains(x.Especialidad))
                                    {
                                        aux.Add(x.Especialidad);
                                    }
                                }
                            }
                        }
                        foreach (string service in aux)
                        {
                            Console.WriteLine(service);
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 5:     //SI ELIGE VER EL PORCENTAJE DE LOS SERVICIOS CON TODAS SUS CAMAS OCUPADAS
                        int serviciosLlenos = 0;
                        foreach (Servicios x in C.ListaServicios())
                        {
                            if (x.CupoCama == 0)
                            {
                                serviciosLlenos++;
                            }
                        }
                        float porcentajeCamas = (float)serviciosLlenos * 100 / C.CantidadServicios();
                        Console.WriteLine("Hay {0}% de camas ocupadas.", porcentajeCamas);
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 6:     //SI ELIGE DAR DE ALTA A UN PACIENTE
                        Console.Write("Ingrese DNI del paciente: ");
                        int dniPaa = int.Parse(Console.ReadLine());
                        if (C.EsPaciente(dniPaa))
                        {
                            Console.Write("Ingrese especialidad del servicio: ");
                            string espeS = Especialidades();
                            if (C.ExisteServicio(espeS))
                            {
                                Servicios s = C.RetornarServicio(espeS);
                                Console.Write("Ingrese legajo del medico: ");
                                int legaMe = int.Parse(Console.ReadLine());
                                Console.Clear();
                                if (s.ExisteMedico(legaMe))
                                {
                                    s.DarAltaPaciente(s.RetornarMedico(legaMe), C.RetornarPaciente(dniPaa));
                                    Console.WriteLine("paciente dado de alta-");
                                    Console.ReadKey();
                                }
                                else
                                {
                                    Console.WriteLine("No existe el medico");
                                }
                            }
                            else
                            {
                                Console.WriteLine("No existe el servicio");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No existe el paciente");
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");;
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 7:     //SI ELIGE VER LA LISTA DE PACIENTES INTERNADOS
                        foreach (Servicios service in C.ListaServicios())
                        {
                            foreach (Medico med in service.TodosMed())
                            {
                                foreach (Paciente pa in med.TodosPacientesInternados())
                                {
                                    pa.Imprimir();
                                }
                            }
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 8:     //SI ELIGE MOSTRAR LA LISTA DE SERVICIOS
                        foreach (Servicios sss in C.ListaServicios())
                        {
                            sss.Imprimir();
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 9:     //SI ELIGE VER LA LISTA DE PACIENTES
                        foreach (Paciente x in C.TodosPacientes())
                        {
                            x.Imprimir();
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 10:     // SI ELIGE VER LA LISTA DE MEDICOS EN LA CLINICA
                        foreach (Servicios ii in C.ListaServicios())
                        {
                            foreach (Medico xx in ii.TodosMed())
                            {
                                xx.Imprimir();
                            }
                        }
                        Console.WriteLine("Presione cualquier tecla para regresar al menú...");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;

                    case 11:     //SI ELIGE SALIR DEL PROGRAMA
                        Console.WriteLine("El programa termino.");
                        break;

                    default:
                        Console.WriteLine("Ingrese un numero del 1 al 7: ");
                        Console.ReadKey();
                        Console.Clear();
                        MENU();
                        break;
                    }
                }
                catch (FormatException)
                {
                    Console.WriteLine("Ingrese bien el dato");
                    Console.WriteLine("Presione cualquier tecla para regresar al menu");
                    Console.ReadKey();
                    Console.Clear();
                    MENU();
                }
            } while (opcion != 11);
        }
예제 #2
0
 public void DarAltaPaciente(Medico med, Paciente pac) //LE DA EL ALTA A UN PACIENTE
 {
     med.AltaPaciente(pac.Dni);
     cupoCama++;
 }
예제 #3
0
 public void AgregarMedico(Medico med) //AGREGA UN MEDICO A LA LISTA DE MEDICOS
 {
     medicos.Add(med);
 }
예제 #4
0
 public void IngresarPaciente(Medico med, Paciente pac)//INGRESA UN PACIENTE Y REDUCE EN 1 EL CUPO DE CAMAS
 {
     med.InternarPaciente(pac);
     cupoCama--;
 }