public async Task <IActionResult> Edit(CitaOdontologica citaOdontologica, List <string> enfermedades) { var i = (ClaimsIdentity)User.Identity; var transaction = _context.Database.BeginTransaction(); DateTime fecha1 = Convert.ToDateTime("29/04/2020"); var fechaC = Funciones.ObtenerFecha(fecha1, "SA Pacific Standard Time"); var fechaU = Funciones.ObtenerFecha(Convert.ToDateTime(citaOdontologica.UltimaVisitaOdontologo), "SA Pacific Standard Time"); if (i.IsAuthenticated) { try { if (citaOdontologica.UltimaVisitaOdontologo >= Funciones.ObtenerFechaActual("SA Pacific Standard Time").Date) { var mensajeR = "La fecha debe ser menor a la actual."; if (!string.IsNullOrEmpty(mensajeR)) { ModelState.AddModelError("UltimaVisitaOdontologo", mensajeR); } } if (!String.IsNullOrEmpty(citaOdontologica.DescripcionReceta)) { if (String.IsNullOrEmpty(citaOdontologica.Indicaciones)) { var mensajeR = "Debe llenar las indicaciones para los medicamentos"; if (!string.IsNullOrEmpty(mensajeR)) { ModelState.AddModelError("Indicaciones", mensajeR); } } } if (!String.IsNullOrEmpty(citaOdontologica.Indicaciones)) { if (String.IsNullOrEmpty(citaOdontologica.DescripcionReceta)) { var mensajeR = "Debe llenar los medicamentos"; if (!string.IsNullOrEmpty(mensajeR)) { ModelState.AddModelError("DescripcionReceta", mensajeR); } } } if (ModelState.IsValid) { //guardar los imagenes de las firmas String FirmaConsentimiento = string.Empty; String FirmaDiagnostico = string.Empty; if (citaOdontologica.FirmaC != null) { if (GetMimeTypes().SingleOrDefault(p => p.Value == citaOdontologica.FirmaC.ContentType && p.Key == "." + citaOdontologica.FirmaC.FileName.Split(".")[citaOdontologica.FirmaC.FileName.Split(".").Count() - 1]).Value != null) { FirmaConsentimiento = UploadFile(citaOdontologica.FirmaC, Encriptacion.Decrypt(citaOdontologica.Codigo), citaOdontologica.Identificacion, "CI"); } else { citaOdontologica.FirmaC = null; ViewData["ExtensionArchivo"] = "Extensión del documento incorrecto"; } } if (citaOdontologica.FirmaD != null) { if (GetMimeTypes().SingleOrDefault(p => p.Value == citaOdontologica.FirmaD.ContentType && p.Key == "." + citaOdontologica.FirmaC.FileName.Split(".")[citaOdontologica.FirmaC.FileName.Split(".").Count() - 1]).Value != null) { FirmaDiagnostico = UploadFile(citaOdontologica.FirmaD, Encriptacion.Decrypt(citaOdontologica.Codigo), citaOdontologica.Identificacion, "DG"); } else { citaOdontologica.FirmaC = null; ViewData["ExtensionArchivo"] = "Extensión del documento incorrecto"; } } DateTime fecha = Funciones.ObtenerFechaActual("SA Pacific Standard Time"); citaOdontologica.Codigo = Encriptacion.Decrypt(citaOdontologica.Codigo); //anamnesis Anamnesis anamnesis = new Anamnesis(); Int64 maxCodigoAnamnesis = 0; maxCodigoAnamnesis = Convert.ToInt64(_context.Anamnesis.Max(f => f.Codigo)); maxCodigoAnamnesis += 1; anamnesis.Codigo = maxCodigoAnamnesis.ToString("D8"); anamnesis.CodigoCitaOdontologica = citaOdontologica.Codigo; anamnesis.MotivoConsulta = citaOdontologica.MotivoConsulta; anamnesis.EnfermedadActual = citaOdontologica.EnfermedadActual; anamnesis.Alerta = citaOdontologica.Alerta; anamnesis.Alergico = citaOdontologica.Alergico; anamnesis.AntecedentesQuirurgicos = citaOdontologica.AntecedentesQuirurgicos; anamnesis.Alergico = citaOdontologica.Alergico; anamnesis.Medicamentos = citaOdontologica.Medicamentos; anamnesis.Habitos = citaOdontologica.Habitos; anamnesis.AntecedentesFamiliares = citaOdontologica.AntecedentesFamiliares; anamnesis.Fuma = citaOdontologica.Fuma; anamnesis.Embarazada = citaOdontologica.Embarazada; anamnesis.UltimaVisitaOdontologo = citaOdontologica.UltimaVisitaOdontologo; anamnesis.Endocrino = citaOdontologica.Endocrino; anamnesis.Traumatologico = citaOdontologica.Traumatologico; anamnesis.Fecha = fecha; _context.Anamnesis.Add(anamnesis); var anamnesisEnf = _context.AnamnesisEnfermedad.Where(a => a.CodigoAnamnesis == anamnesis.Codigo).ToList(); foreach (var item in anamnesisEnf) { _context.AnamnesisEnfermedad.Remove(item); } _context.SaveChanges(); //guardar AnamenesisEnefermedad Int64 maxCodigoAe = 0; maxCodigoAe = Convert.ToInt64(_context.AnamnesisEnfermedad.Max(f => f.Codigo)); foreach (var enf in enfermedades) { AnamnesisEnfermedad anamnesisEnfermedad = new AnamnesisEnfermedad(); maxCodigoAe += 1; anamnesisEnfermedad.Codigo = maxCodigoAe.ToString("D8"); anamnesisEnfermedad.CodigoAnamnesis = anamnesis.Codigo; anamnesisEnfermedad.CodigoEnfermedad = enf; _context.AnamnesisEnfermedad.Add(anamnesisEnfermedad); } _context.SaveChanges(); //diagnostico Diagnostico diagnostico = new Diagnostico(); Int64 maxCodigoDiag = 0; maxCodigoDiag = Convert.ToInt64(_context.Diagnostico.Max(f => f.Codigo)); maxCodigoDiag += 1; diagnostico.Codigo = maxCodigoDiag.ToString("D8"); diagnostico.CodigoCitaOdontologica = citaOdontologica.Codigo; diagnostico.Fecha = fecha; diagnostico.Pieza = citaOdontologica.Pieza; diagnostico.Observacion = citaOdontologica.Observacion; diagnostico.Firma = FirmaDiagnostico; diagnostico.Acuerdo = true; diagnostico.Recomendacion = citaOdontologica.Recomendacion; _context.Diagnostico.Add(diagnostico); var diagnosticoCie10 = _context.DiagnosticoCie10.Where(a => a.CodigoDiagnostico == diagnostico.Codigo).ToList(); foreach (var item in diagnosticoCie10) { _context.DiagnosticoCie10.Remove(item); } _context.SaveChanges(); //guardar diagnosticoCie10 Int64 maxCodigoCie = 0; maxCodigoCie = Convert.ToInt64(_context.DiagnosticoCie10.Max(f => f.Codigo)); maxCodigoCie += 1; DiagnosticoCie10 diagCie10 = new DiagnosticoCie10(); diagCie10.Codigo = maxCodigoCie.ToString("D8"); diagCie10.CodigoDiagnostico = diagnostico.Codigo; diagCie10.CodigoCie10 = citaOdontologica.CodigoDiagnosticoCie10; _context.DiagnosticoCie10.Add(diagCie10); _context.SaveChanges(); //consentimiento informado ConsentimientoInformado consentimientoInformado = new ConsentimientoInformado(); Int64 maxCodigoCi = 0; maxCodigoCi = Convert.ToInt64(_context.ConsentimientoInformado.Max(f => f.Codigo)); maxCodigoCi += 1; consentimientoInformado.Codigo = maxCodigoCi.ToString("D8"); consentimientoInformado.CodigoCitaOdontologica = citaOdontologica.Codigo; consentimientoInformado.Descripcion = citaOdontologica.Descripcion; consentimientoInformado.Firma = FirmaConsentimiento; //citaOdontologica.FirmaConcentimiento; consentimientoInformado.Acuerdo = true; //citaOdontologica.AcuerdoConsentimiento; consentimientoInformado.Fecha = fecha; _context.Add(consentimientoInformado); _context.SaveChanges(); var codigoReceta = ""; Boolean registroReceta = false; if (!((string.IsNullOrEmpty(citaOdontologica.DescripcionReceta)) && (string.IsNullOrEmpty(citaOdontologica.Indicaciones)))) { //receta medica RecetaMedica recetaMedica = new RecetaMedica(); Int64 maxCodigoR = 0; maxCodigoR = Convert.ToInt64(_context.RecetaMedica.Max(f => f.Codigo)); maxCodigoR += 1; recetaMedica.Codigo = maxCodigoR.ToString("D8"); recetaMedica.CodigoCitaOdontologica = citaOdontologica.Codigo; recetaMedica.Descripcion = citaOdontologica.DescripcionReceta; recetaMedica.Fecha = fecha; if (citaOdontologica.CodigoPlantillaRecetaMedica == "0") { recetaMedica.CodigoPlantillaRecetaMedica = null; } else { recetaMedica.CodigoPlantillaRecetaMedica = citaOdontologica.CodigoPlantillaRecetaMedica; } recetaMedica.Indicaciones = citaOdontologica.Indicaciones; codigoReceta = recetaMedica.Codigo; _context.Add(recetaMedica); _context.SaveChanges(); registroReceta = true; } CitaOdontologica citaAntigua = _context.CitaOdontologica.SingleOrDefault(p => p.Codigo == citaOdontologica.Codigo); citaAntigua.Codigo = citaOdontologica.Codigo; citaAntigua.CodigoPaciente = citaOdontologica.CodigoPaciente; citaAntigua.CodigoPersonal = citaOdontologica.CodigoPersonal; citaAntigua.FechaCreacion = citaOdontologica.FechaCreacion; citaAntigua.Observaciones = citaOdontologica.Observaciones; citaAntigua.Estado = "A"; citaAntigua.FechaInicio = citaOdontologica.FechaInicio; citaAntigua.FechaFin = citaOdontologica.FechaFin; citaAntigua.HoraInicio = citaOdontologica.HoraInicio; citaAntigua.HoraFin = citaOdontologica.HoraFin; citaAntigua.UsuarioCreacion = i.Name; citaAntigua.RegistroRecetaMedica = registroReceta; _context.Update(citaAntigua); _context.SaveChanges(); await _auditoria.GuardarLogAuditoria(fecha, i.Name, "Anamnesis", anamnesis.Codigo, "I"); await _auditoria.GuardarLogAuditoria(fecha, i.Name, "Diagnostico", diagnostico.Codigo, "I"); await _auditoria.GuardarLogAuditoria(fecha, i.Name, "ConsentmientoInformado", consentimientoInformado.Codigo, "I"); if (!string.IsNullOrEmpty(codigoReceta)) { await _auditoria.GuardarLogAuditoria(fecha, i.Name, "Receta", codigoReceta, "I"); } await _auditoria.GuardarLogAuditoria(fecha, i.Name, "CitaOdontologica", citaOdontologica.Codigo, "I"); transaction.Commit(); //cargar los datos var paciente = _context.Paciente.Where(p => p.Codigo == citaOdontologica.CodigoPaciente).Include(p => p.Facultad).Include(p => p.Carrera).SingleOrDefault(); //datos del paciente ViewData["Cedula"] = paciente.Identificacion; ViewData["Nombre"] = paciente.NombreCompleto; ViewData["Direccion"] = paciente.Direccion; ViewData["Correo"] = paciente.MailEpn; ViewData["Telefono"] = paciente.Celular; if (paciente.Facultad == null) { ViewData["Facultad"] = ""; ViewData["Carrera"] = ""; } else { ViewData["Facultad"] = paciente.Facultad.Nombre; ViewData["Carrera"] = paciente.Carrera.Nombre; } ViewData["CodigoCitaOdontologica"] = citaOdontologica.Codigo; //paciente List <SelectListItem> TipoIdentificacion = new SelectList(_context.TipoIdentificacion.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); ViewData["CodigoTipoIdentificacion"] = TipoIdentificacion; List <SelectListItem> Facultad = new SelectList(_context.Facultad.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); Facultad.Insert(0, vacio); ViewData["CodigoFacultad"] = Facultad; //anamnesis List <SelectListItem> Enfermedades = null; Enfermedades = new SelectList(_context.Enfermedad.OrderBy(c => c.Nombre).Where(c => c.Estado == true), "Codigo", "Nombre").ToList(); ViewData["AnamnesisEnfermedad"] = Enfermedades; //diagnostico List <SelectListItem> Cie10 = new SelectList(_context.Cie10.OrderBy(f => f.CodigoInterno), "Codigo", "CodigoNombre").ToList(); //.Where(f => f.Nombre.StartsWith("C")).ToList(); //QUITAR LUEGO ; Cie10.Insert(0, vacio); ViewData["CIE10"] = Cie10; //consentimiento informado var PlantillaCI = _context.PlantillaConsentimientoInformado.Where(c => c.Nombre.Contains("Consentimiento Informado")).SingleOrDefault(); ViewData["Descripcion"] = PlantillaCI.Descripcion; //receta medica List <SelectListItem> PlantillaRM = new SelectList(_context.PlantillaRecetaMedica.OrderBy(c => c.Nombre), "Codigo", "Nombre").ToList(); PlantillaRM.Insert(0, vacio); ViewData["CodigoPlantillaReceta"] = PlantillaRM; //imagen ViewBag.Message = "Save"; return(View(citaOdontologica)); } else { //cargar los datos var paciente = _context.Paciente.Where(p => p.Codigo == citaOdontologica.CodigoPaciente).Include(p => p.Facultad).Include(p => p.Carrera).SingleOrDefault(); //datos del paciente ViewData["Cedula"] = paciente.Identificacion; ViewData["Nombre"] = paciente.NombreCompleto; ViewData["Direccion"] = paciente.Direccion; ViewData["Correo"] = paciente.MailEpn; ViewData["Telefono"] = paciente.Celular; if (paciente.Facultad == null) { ViewData["Facultad"] = ""; ViewData["Carrera"] = ""; } else { ViewData["Facultad"] = paciente.Facultad.Nombre; ViewData["Carrera"] = paciente.Carrera.Nombre; } ViewData["CodigoCitaOdontologica"] = citaOdontologica.Codigo; //paciente List <SelectListItem> TipoIdentificacion = new SelectList(_context.TipoIdentificacion.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); ViewData["CodigoTipoIdentificacion"] = TipoIdentificacion; List <SelectListItem> Facultad = new SelectList(_context.Facultad.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); Facultad.Insert(0, vacio); ViewData["CodigoFacultad"] = Facultad; //anamnesis List <SelectListItem> Enfermedades = null; Enfermedades = new SelectList(_context.Enfermedad.OrderBy(c => c.Nombre).Where(c => c.Estado == true), "Codigo", "Nombre").ToList(); ViewData["AnamnesisEnfermedad"] = Enfermedades; //diagnostico List <SelectListItem> Cie10 = new SelectList(_context.Cie10.OrderBy(f => f.CodigoInterno), "Codigo", "CodigoNombre").ToList(); //.Where(f => f.Nombre.StartsWith("C")).ToList(); //QUITAR LUEGO ; Cie10.Insert(0, vacio); ViewData["CIE10"] = Cie10; //consentimiento informado var PlantillaCI = _context.PlantillaConsentimientoInformado.Where(c => c.Nombre.Contains("Consentimiento Informado")).SingleOrDefault(); ViewData["Descripcion"] = PlantillaCI.Descripcion; //receta medica List <SelectListItem> PlantillaRM = new SelectList(_context.PlantillaRecetaMedica.OrderBy(c => c.Nombre), "Codigo", "Nombre").ToList(); PlantillaRM.Insert(0, vacio); ViewData["CodigoPlantillaReceta"] = PlantillaRM; try { var odontograma = await _context.Odontograma.SingleOrDefaultAsync(f => f.CodigoCitaOdontologica == Encriptacion.Decrypt(citaOdontologica.Codigo)); _context.Odontograma.Remove(odontograma); await _context.SaveChangesAsync(); } catch (Exception e) { string mens = e.Message; ViewBag.Message = mens; } ViewBag.Message = "Debe revisar los datos de Anamnesis o Receta Medica"; return(View(citaOdontologica)); } } catch (Exception e) { string mensaje = e.Message; if (e.InnerException != null) { mensaje = MensajesError.UniqueKey(e.InnerException.Message); } ViewBag.Message = mensaje; transaction.Rollback(); //eliminar el odontograma si hay algun error //citaOdontologica.Codigo = Encriptacion.Decrypt(citaOdontologica.Codigo); var odontograma = await _context.Odontograma.SingleOrDefaultAsync(f => f.CodigoCitaOdontologica == citaOdontologica.Codigo); _context.Odontograma.Remove(odontograma); await _context.SaveChangesAsync(); //cargar los datos var paciente = _context.Paciente.Where(p => p.Codigo == citaOdontologica.CodigoPaciente).Include(p => p.Facultad).Include(p => p.Carrera).SingleOrDefault(); //datos del paciente ViewData["Cedula"] = paciente.Identificacion; ViewData["Nombre"] = paciente.NombreCompleto; ViewData["Direccion"] = paciente.Direccion; ViewData["Correo"] = paciente.MailEpn; ViewData["Telefono"] = paciente.Celular; if (paciente.Facultad == null) { ViewData["Facultad"] = ""; ViewData["Carrera"] = ""; } else { ViewData["Facultad"] = paciente.Facultad.Nombre; ViewData["Carrera"] = paciente.Carrera.Nombre; } ViewData["CodigoCitaOdontologica"] = citaOdontologica.Codigo; //paciente List <SelectListItem> TipoIdentificacion = new SelectList(_context.TipoIdentificacion.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); ViewData["CodigoTipoIdentificacion"] = TipoIdentificacion; List <SelectListItem> Facultad = new SelectList(_context.Facultad.OrderBy(f => f.Nombre), "Codigo", "Nombre").ToList(); Facultad.Insert(0, vacio); ViewData["CodigoFacultad"] = Facultad; //anamnesis List <SelectListItem> Enfermedades = null; Enfermedades = new SelectList(_context.Enfermedad.OrderBy(c => c.Nombre).Where(c => c.Estado == true), "Codigo", "Nombre").ToList(); ViewData["AnamnesisEnfermedad"] = Enfermedades; //diagnostico List <SelectListItem> Cie10 = new SelectList(_context.Cie10.OrderBy(f => f.CodigoInterno), "Codigo", "CodigoNombre").ToList(); //.Where(f => f.Nombre.StartsWith("C")).ToList(); //QUITAR LUEGO ; Cie10.Insert(0, vacio); ViewData["CIE10"] = Cie10; //consentimiento informado var PlantillaCI = _context.PlantillaConsentimientoInformado.Where(c => c.Nombre.Contains("Consentimiento Informado")).SingleOrDefault(); ViewData["Descripcion"] = PlantillaCI.Descripcion; //receta medica List <SelectListItem> PlantillaRM = new SelectList(_context.PlantillaRecetaMedica.OrderBy(c => c.Nombre), "Codigo", "Nombre").ToList(); PlantillaRM.Insert(0, vacio); ViewData["CodigoPlantillaReceta"] = PlantillaRM; //fin cargar datos return(View(citaOdontologica)); } } else { return(Redirect("../Identity/Account/Login")); } }
public async Task <IActionResult> Edit(Anamnesis anamnesis, List <string> enfermedades) { var i = (ClaimsIdentity)User.Identity; List <SelectListItem> Personal = new SelectList(_context.Personal.OrderBy(c => c.NombreCompleto).Where(c => c.Estado == true), "Codigo", "NombreCompleto", anamnesis.CodigoPersonal).ToList(); List <SelectListItem> Paciente = new SelectList(_context.Paciente.OrderBy(p => p.NombreCompleto).Where(p => p.Estado == true), "Codigo", "NombreCompleto", anamnesis.CodigoPaciente).ToList(); if (i.IsAuthenticated) { try { if (ModelState.IsValid) { try { var transaction = _context.Database.BeginTransaction(); //actualizar anamnesis anamnesis.Codigo = Encriptacion.Decrypt(anamnesis.Codigo); Anamnesis anamnesisAntiguo = _context.Anamnesis.SingleOrDefault(p => p.Codigo == anamnesis.Codigo); anamnesisAntiguo.Codigo = anamnesis.Codigo; anamnesisAntiguo.CodigoCitaOdontologica = anamnesis.CodigoCitaOdontologica; anamnesisAntiguo.MotivoConsulta = anamnesis.MotivoConsulta; anamnesisAntiguo.EnfermedadActual = anamnesis.EnfermedadActual; anamnesisAntiguo.Alerta = anamnesis.Alerta; anamnesisAntiguo.Alergico = anamnesis.Alergico; anamnesisAntiguo.AntecedentesQuirurgicos = anamnesis.AntecedentesQuirurgicos; anamnesisAntiguo.Alergico = anamnesis.Alergico; anamnesisAntiguo.Medicamentos = anamnesis.Medicamentos; anamnesisAntiguo.Habitos = anamnesis.Habitos; anamnesisAntiguo.AntecedentesFamiliares = anamnesis.AntecedentesFamiliares; anamnesisAntiguo.Fuma = anamnesis.Fuma; anamnesisAntiguo.Embarazada = anamnesis.Embarazada; anamnesisAntiguo.UltimaVisitaOdontologo = anamnesis.UltimaVisitaOdontologo; anamnesisAntiguo.Endocrino = anamnesis.Endocrino; anamnesisAntiguo.Traumatologico = anamnesis.Traumatologico; anamnesisAntiguo.Fecha = fecha; var anamnesisEnf = _context.AnamnesisEnfermedad.Where(a => a.CodigoAnamnesis == anamnesis.Codigo).ToList(); foreach (var item in anamnesisEnf) { _context.AnamnesisEnfermedad.Remove(item); } _context.SaveChanges(); //guardar AnamenesisEnefermedad Int64 maxCodigoAe = 0; maxCodigoAe = Convert.ToInt64(_context.AnamnesisEnfermedad.Max(f => f.Codigo)); foreach (var enf in enfermedades) { AnamnesisEnfermedad anamnesisEnfermedad = new AnamnesisEnfermedad(); maxCodigoAe += 1; anamnesisEnfermedad.Codigo = maxCodigoAe.ToString("D8"); anamnesisEnfermedad.CodigoAnamnesis = anamnesis.Codigo; anamnesisEnfermedad.CodigoEnfermedad = enf; _context.AnamnesisEnfermedad.Add(anamnesisEnfermedad); } //foreach (var enf in anamnesis.AnamnesisEnfermedad) //{ // if (enf.Seleccionado) // { // AnamnesisEnfermedad anamnesisEnfermedad = new AnamnesisEnfermedad(); // maxCodigoAe += 1; // anamnesisEnfermedad.Codigo = maxCodigoAe.ToString("D8"); // //anamnesisEnfermedad.CodigoAnamnesis = null; // anamnesisEnfermedad.CodigoAnamnesis = anamnesis.Codigo; // anamnesisEnfermedad.CodigoEnfermedad = enf.Enfermedad.Codigo; // _context.AnamnesisEnfermedad.Add(anamnesisEnfermedad); // } //} _context.Update(anamnesisAntiguo); _context.SaveChanges(); transaction.Commit(); await _auditoria.GuardarLogAuditoria(Funciones.ObtenerFechaActual("SA Pacific Standard Time"), i.Name, "Anamnesis", anamnesis.Codigo, "U"); ViewBag.Message = "Save"; Personal.Insert(0, vacio); ViewData["CodigoPersonal"] = Personal; Paciente.Insert(0, vacio); ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } catch (DbUpdateConcurrencyException) { throw; } } Personal.Insert(0, vacio); ViewData["CodigoPersonal"] = Personal; Paciente.Insert(0, vacio); ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } catch (Exception e) { string mensaje = e.Message; if (e.InnerException != null) { mensaje = MensajesError.UniqueKey(e.InnerException.Message); } ViewBag.Message = mensaje; Personal.Insert(0, vacio); ViewData["CodigoPersonal"] = Personal; Paciente.Insert(0, vacio); ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } } else { return(Redirect("../Identity/Account/Login")); } }
public async Task <IActionResult> Create(Anamnesis anamnesis, List <string> enfermedades) { var i = (ClaimsIdentity)User.Identity; if (i.IsAuthenticated) { try { if (ModelState.IsValid) { //cita odontologica CitaOdontologica citaOdontologica = _context.CitaOdontologica.Where(ci => ci.Codigo == anamnesis.CodigoCitaOdontologica).SingleOrDefault(); //_context.CitaOdontologica.Where(ci => ci.FechaInicio.Date == fecha.Date && ci.HoraInicio <= intInicial && ci.HoraFin >= intFinal && ci.CodigoPaciente == anamnesis.CodigoPaciente && ci.CodigoPersonal == anamnesis.CodigoPersonal).FirstOrDefault(); DateTime FechaCitaCreacion = Funciones.ObtenerFechaActual("SA Pacific Standard Time"); var transaction = _context.Database.BeginTransaction(); if (citaOdontologica == null) { CitaOdontologica cita = new CitaOdontologica(); Int64 maxCodigoHC = 0; maxCodigoHC = Convert.ToInt64(_context.CitaOdontologica.Max(f => f.Codigo)); maxCodigoHC += 1; cita.Codigo = maxCodigoHC.ToString("D8"); cita.CodigoPaciente = anamnesis.CodigoPaciente; cita.CodigoPersonal = anamnesis.CodigoPersonal; cita.FechaCreacion = FechaCitaCreacion; cita.Observaciones = null; cita.Estado = "N"; cita.FechaInicio = FechaCitaCreacion; cita.FechaFin = FechaCitaCreacion; cita.HoraInicio = new TimeSpan(FechaCitaCreacion.Hour, FechaCitaCreacion.Minute, 00); cita.HoraFin = new TimeSpan(FechaCitaCreacion.Hour, FechaCitaCreacion.Minute, 00); cita.UsuarioCreacion = i.Name; _context.Add(cita); await _context.SaveChangesAsync(); await _auditoria.GuardarLogAuditoria(cita.FechaCreacion, i.Name, "CitaOdontologica", cita.Codigo, "I"); anamnesis.CodigoCitaOdontologica = cita.Codigo; } else { anamnesis.CodigoCitaOdontologica = citaOdontologica.Codigo; } //guardar el anamnesos Anamnesis anm = new Anamnesis(); Int64 maxCodigo = 0; maxCodigo = Convert.ToInt64(_context.Anamnesis.Max(f => f.Codigo)); maxCodigo += 1; anm.Codigo = maxCodigo.ToString("D8"); anm.CodigoCitaOdontologica = anamnesis.CodigoCitaOdontologica; anm.MotivoConsulta = anamnesis.MotivoConsulta; anm.EnfermedadActual = anamnesis.EnfermedadActual; anm.Alerta = anamnesis.Alerta; anm.Alergico = anamnesis.Alergico; anm.AntecedentesQuirurgicos = anamnesis.AntecedentesQuirurgicos; anm.Alergico = anamnesis.Alergico; anm.Medicamentos = anamnesis.Medicamentos; anm.Habitos = anamnesis.Habitos; anm.AntecedentesFamiliares = anamnesis.AntecedentesFamiliares; anm.Fuma = anamnesis.Fuma; anm.Embarazada = anamnesis.Embarazada; anm.UltimaVisitaOdontologo = anamnesis.UltimaVisitaOdontologo; anm.Endocrino = anamnesis.Endocrino; anm.Traumatologico = anamnesis.Traumatologico; anm.Fecha = fecha; _context.Anamnesis.Add(anm); //guardar AnamenesisEnefermedad Int64 maxCodigoAe = 0; maxCodigoAe = Convert.ToInt64(_context.AnamnesisEnfermedad.Max(f => f.Codigo)); foreach (var enf in enfermedades) { AnamnesisEnfermedad anamnesisEnfermedad = new AnamnesisEnfermedad(); maxCodigoAe += 1; anamnesisEnfermedad.Codigo = maxCodigoAe.ToString("D8"); anamnesisEnfermedad.CodigoAnamnesis = anm.Codigo; anamnesisEnfermedad.CodigoEnfermedad = enf; _context.AnamnesisEnfermedad.Add(anamnesisEnfermedad); } //foreach (var enf in anamnesis.AnamnesisEnfermedad) //{ // if (enf.Seleccionado) // { // AnamnesisEnfermedad anamnesisEnfermedad = new AnamnesisEnfermedad(); // maxCodigoAe += 1; // anamnesisEnfermedad.Codigo = maxCodigoAe.ToString("D8"); // //anamnesisEnfermedad.CodigoAnamnesis = anamnesis.Codigo; // anamnesisEnfermedad.CodigoAnamnesis = anm.Codigo; // anamnesisEnfermedad.CodigoEnfermedad = enf.Enfermedad.Codigo; // _context.AnamnesisEnfermedad.Add(anamnesisEnfermedad); // } //} await _context.SaveChangesAsync(); transaction.Commit(); await _auditoria.GuardarLogAuditoria(anm.Fecha, i.Name, "Anamnesis", anm.Codigo, "I"); ViewBag.Message = "Save"; return(View(anamnesis)); } return(View(anamnesis)); } catch (Exception e) { string mensaje = e.Message; if (e.InnerException != null) { mensaje = MensajesError.UniqueKey(e.InnerException.Message); } ViewBag.Message = mensaje; List <SelectListItem> Personal = new SelectList(_context.Personal.OrderBy(c => c.NombreCompleto).Where(c => c.Estado == true), "Codigo", "NombreCompleto").ToList(); Personal.Insert(0, vacio); ViewData["CodigoPersonal"] = Personal; List <SelectListItem> Paciente = new SelectList(_context.Paciente.OrderBy(p => p.NombreCompleto).Where(p => p.Estado == true), "Codigo", "NombreCompleto").ToList(); Paciente.Insert(0, vacio); ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } } else { return(Redirect("../Identity/Account/Login")); } }
// GET: Anamnesis/Edit/5 public async Task <IActionResult> Edit(string codigo) { var i = (ClaimsIdentity)User.Identity; if (i.IsAuthenticated) { var permisos = i.Claims.Where(c => c.Type == "Anamnesis").Select(c => c.Value).SingleOrDefault().Split(";"); codigo = Encriptacion.Decrypt(codigo); if (Convert.ToBoolean(permisos[2])) { if (codigo == null) { return(NotFound()); } var anamnesis = await _context.Anamnesis.Include(a => a.AnamnesisEnfermedad) .ThenInclude(a => a.Enfermedad) .Include(a => a.CitaOdontologica).ThenInclude(h => h.Paciente) .Include(an => an.CitaOdontologica).ThenInclude(hc => hc.Personal) .SingleOrDefaultAsync(f => f.Codigo == codigo); if (anamnesis == null) { return(NotFound()); } //lista de enfermedades var listaEnfermedades = _context.Enfermedad.OrderBy(f => f.Nombre).ToList(); listaEnfermedades = listaEnfermedades.FindAll(f => f.Estado == true); List <AnamnesisEnfermedad> tci = new List <AnamnesisEnfermedad>(); tci = anamnesis.AnamnesisEnfermedad; for (int l = 0; l < tci.Count(); l++) { tci[l].Seleccionado = true; } //enfermedades que estan en anamnesisenfermedad List <Enfermedad> listaImpuestosTCI = new List <Enfermedad>(); List <string> listaE = new List <string>(); string listaEE = ""; foreach (var item in tci) { listaImpuestosTCI.Add(item.Enfermedad); listaE.Add(item.Codigo); listaEE = listaEE + item.Codigo + ","; } //enfermedad que faltan en anamnesisEnfermedad var listaImpuestosAgregar = (from t in listaEnfermedades where !listaImpuestosTCI.Any(x => x.Codigo == t.Codigo) select t).ToList(); //agregar a la lista de anamnesisEnfermedad foreach (var l in listaImpuestosAgregar) { AnamnesisEnfermedad ti = new AnamnesisEnfermedad(); ti.Enfermedad = l; ti.Seleccionado = false; anamnesis.AnamnesisEnfermedad.Add(ti); } anamnesis.AnamnesisEnfermedad.OrderBy(p => p.Enfermedad.Nombre); ViewData["AnamnesisEnfermedadSeleccionadas"] = listaEE; //listaE.ToString(); List <SelectListItem> Enfermedades = null; Enfermedades = new SelectList(_context.Enfermedad.OrderBy(c => c.Nombre).Where(c => c.Estado == true), "Codigo", "Nombre").ToList(); //SelectListItem test = new SelectListItem(value: "9", text: "test", selected: true ); //Enfermedades.Insert(8, test); ViewData["AnamnesisEnfermedad"] = Enfermedades; //ViewData["AnamnesisEnfermedad"] = anamnesis.AnamnesisEnfermedad; List <SelectListItem> Personal = new SelectList(_context.Personal.OrderBy(c => c.NombreCompleto).Where(c => c.Estado == true), "Codigo", "NombreCompleto", anamnesis.CitaOdontologica.Personal.Codigo).ToList(); Personal.Insert(0, vacio); ViewData["CodigoPersonal"] = Personal; List <SelectListItem> Paciente = new SelectList(_context.Paciente.OrderBy(p => p.NombreCompleto).Where(p => p.Estado == true), "Codigo", "NombreCompleto", anamnesis.CitaOdontologica.Paciente.Codigo).ToList(); Paciente.Insert(0, vacio); ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } else { return(Redirect("../Anamnesis")); } } else { return(Redirect("../Identity/Account/Login")); } }
// GET: Anamnesis/Create public IActionResult Create(string codigo) { TempData["CodigoCitaAlAtender"] = codigo; var i = (ClaimsIdentity)User.Identity; if (i.IsAuthenticated) { var permisos = i.Claims.Where(c => c.Type == "Anamnesis").Select(c => c.Value).SingleOrDefault().Split(";"); if (Convert.ToBoolean(permisos[1])) { //lista de enfermedades List <AnamnesisEnfermedad> ae = new List <AnamnesisEnfermedad>(); var enfermedad = _context.Enfermedad.OrderBy(f => f.Nombre).ToList(); enfermedad = enfermedad.FindAll(f => f.Estado == true); //agregar las enferemedades a la lista de anamnesisEnfermedad. foreach (Enfermedad item in enfermedad) { AnamnesisEnfermedad aenfermedad = new AnamnesisEnfermedad(); aenfermedad.Enfermedad = item; aenfermedad.Seleccionado = false; ae.Add(aenfermedad); } Anamnesis anamnesis = new Anamnesis(); anamnesis.AnamnesisEnfermedad = ae; List <SelectListItem> Enfermedades = null; Enfermedades = new SelectList(_context.Enfermedad.OrderBy(c => c.Nombre).Where(c => c.Estado == true), "Codigo", "Nombre").ToList(); ViewData["AnamnesisEnfermedad"] = Enfermedades; //llenar combos de paciente y doctor select * from citaodontologica where HoraInicio >= '9:00' and HoraFin <= '10:30' //TimeSpan intInicial = new TimeSpan(fecha.Hour, fecha.Minute, 00); TimeSpan intInicial = new TimeSpan(19, 30, 00); TimeSpan intFinal = new TimeSpan(22, 30, 00); //ver estos condiciones. var c = _context.CitaOdontologica.Where(ci => ci.FechaInicio.Date == fecha.Date); c = c.Where(ci => ci.HoraInicio >= intInicial || ci.HoraFin <= intFinal); CitaOdontologica cita = c.FirstOrDefault(); //CitaOdontologica cita = _context.CitaOdontologica.Where(ci => ci.FechaInicio.Date == fecha.Date && ci.HoraInicio >= intInicial || ci.HoraFin <= intFinal).SingleOrDefault(); //-- fin ver las condiciones List <SelectListItem> Personal = null; List <SelectListItem> Paciente = null; if (cita == null) { Personal = new SelectList(_context.Personal.OrderBy(c => c.NombreCompleto).Where(c => c.Estado == true), "Codigo", "NombreCompleto").ToList(); Personal.Insert(0, vacio); Paciente = new SelectList(_context.Paciente.OrderBy(p => p.NombreCompleto).Where(p => p.Estado == true), "Codigo", "NombreCompleto").ToList(); Paciente.Insert(0, vacio); anamnesis.CodigoCitaOdontologica = null; } else { Personal = new SelectList(_context.Personal.OrderBy(c => c.NombreCompleto).Where(c => c.Estado == true), "Codigo", "NombreCompleto", cita.CodigoPersonal).ToList(); Paciente = new SelectList(_context.Paciente.OrderBy(p => p.NombreCompleto).Where(p => p.Estado == true), "Codigo", "NombreCompleto", cita.CodigoPaciente).ToList(); anamnesis.CodigoCitaOdontologica = cita.Codigo; } ViewData["CodigoPersonal"] = Personal; ViewData["CodigoPaciente"] = Paciente; return(View(anamnesis)); } else { return(Redirect("../Anamnesis")); } } else { return(Redirect("../Identity/Account/Login")); } }