// GET: ConsultaEstudio/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var consultaEstudio = await _context.ConsultaEstudios
                                  .Include(c => c.Diagnostico)
                                  .Include(c => c.Medico)
                                  .Include(c => c.Estudio)
                                  .Include(c => c.Paciente)
                                  .FirstOrDefaultAsync(m => m.ConsultaEstudioId == id);

            if (consultaEstudio == null)
            {
                return(NotFound());
            }

            var consultaEstudioView = new ConsultaEstudioViewModel
            {
                ConsultaEstudioId = consultaEstudio.ConsultaEstudioId,
                PacienteId        = consultaEstudio.PacienteId,
                Paciente          = consultaEstudio.Paciente,
                FechaActual       = consultaEstudio.FechaActual,
                MedicoId          = consultaEstudio.MedicoId,
                Medico            = consultaEstudio.Medico,
                DiagnosticoId     = consultaEstudio.DiagnosticoId,
                Diagnostico       = consultaEstudio.Diagnostico,
                Estudio           = consultaEstudio.Estudio,
                EstudioId         = consultaEstudio.EstudioId,
                Cedula            = consultaEstudio.Paciente.Cedula,
                PacienteNombre    = consultaEstudio.Paciente.PacienteNombre
            };

            var listaDiagnosticos = await this._context.Diagnosticos.AsNoTracking()
                                    .Include(x => x.Especialidad)
                                    .Where(x => x.DiagnosticoId == consultaEstudioView.DiagnosticoId && x.EspecialidadId == consultaEstudioView.Diagnostico.EspecialidadId)
                                    .ToListAsync();

            var listaMedicos = await ListaMedicos(consultaEstudioView.DiagnosticoId);

            var listaEstudios = await ListaEstudios(consultaEstudio.DiagnosticoId);

            ViewData["DiagnosticoId"] = new SelectList(listaDiagnosticos, "DiagnosticoId", "DiagnosticoNombre", consultaEstudio.DiagnosticoId);
            ViewData["MedicoId"]      = new SelectList(listaMedicos, "MedicoId", "Nombre", consultaEstudio.MedicoId);
            ViewData["EstudioId"]     = new SelectList(listaEstudios, "EstudioId", "EstudioNombre", consultaEstudio.EstudioId);
            return(View(consultaEstudioView));
        }
        public async Task <IActionResult> Create([Bind("ConsultaEstudioId,Cedula,PacienteNombre,FechaActual,MedicoId,EstudioId,DiagnosticoId")] ConsultaEstudioViewModel consultaEstudio)
        {
            if (ModelState.IsValid)
            {
                var paciente = await _context.Pacientes
                               .FirstOrDefaultAsync(m => m.Cedula == consultaEstudio.Cedula);

                if (!PacienteExists(consultaEstudio.Cedula))
                {
                    paciente = new Paciente
                    {
                        Cedula         = consultaEstudio.Cedula,
                        PacienteNombre = consultaEstudio.PacienteNombre
                    };
                    _context.Add(paciente);
                    await _context.SaveChangesAsync();
                }

                var objConsultaEstudio = new ConsultaEstudio
                {
                    PacienteId    = paciente.PacienteId,
                    FechaActual   = DateTime.Now,
                    MedicoId      = consultaEstudio.MedicoId,
                    DiagnosticoId = consultaEstudio.DiagnosticoId,
                    EstudioId     = consultaEstudio.EstudioId
                };
                _context.Add(objConsultaEstudio);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            var listaMedicos = await ListaMedicos(consultaEstudio.DiagnosticoId);

            var listaEstudios = await ListaEstudios(consultaEstudio.DiagnosticoId);

            ViewData["DiagnosticoId"] = new SelectList(_context.Diagnosticos, "DiagnosticoId", "DiagnosticoNombre", consultaEstudio.DiagnosticoId);
            ViewData["MedicoId"]      = new SelectList(listaMedicos, "MedicoId", "Nombre", consultaEstudio.MedicoId);
            ViewData["EstudioId"]     = new SelectList(listaEstudios, "EstudioId", "EstudioNombre", consultaEstudio.EstudioId);
            return(View(consultaEstudio));
        }