public IMDResponse<bool> CEliminarFoliosEmpresa([FromBody]EntFolioFV entFolioFV) { IMDResponse<bool> response = new IMDResponse<bool>(); string metodo = nameof(this.CEliminarFoliosEmpresa); logger.Info(IMDSerialize.Serialize(67823458445365, $"Inicia {metodo}([FromBody]EntFolioFV entFolioFV)", entFolioFV)); try { BusFolio busFolio = new BusFolio(); response = busFolio.BEliminarFoliosEmpresa(entFolioFV); } catch (Exception ex) { response.Code = 67823458446142; response.Message = "Ocurrió un error inesperado en el servicio al eliminar los folios."; logger.Error(IMDSerialize.Serialize(67823458446142, $"Error en {metodo}([FromBody]EntFolioFV entFolioFV): {ex.Message}", entFolioFV, ex, response)); } return response; }
/// <summary> /// Cancela la consulta y el folio de un paciente /// </summary> /// <param name="consulta"></param> /// <returns></returns> public IMDResponse <bool> BCancelarConsulta(EntNuevaConsulta consulta) { IMDResponse <bool> response = new IMDResponse <bool>(); string metodo = nameof(this.BCancelarConsulta); logger.Info(IMDSerialize.Serialize(67823458552591, $"Inicia {metodo}(EntNuevaConsulta consulta)", consulta)); try { if (consulta == null) { response.Code = -767234562313709; response.Message = "No se ingresó información de la consulta a cancelar"; return(response); } //Obtene detalle de la consulta IMDResponse <List <EntDetalleConsulta> > resGetDetalleConsulta = this.BGetDetalleConsulta(consulta.consulta.iIdConsulta); if (resGetDetalleConsulta.Code != 0) { return(resGetDetalleConsulta.GetResponse <bool>()); } if (resGetDetalleConsulta.Result.Count != 1) { response.Code = -5723613487698; response.Message = "La consulta proporcionada no se encuentra programada."; return(response); } EntDetalleConsulta detalleConsulta = resGetDetalleConsulta.Result.First(); consulta.consulta.iIdEstatusConsulta = (int)EnumEstatusConsulta.Cancelado; //Cancelar la consulta del paciente IMDResponse <bool> resDelConsulta = datConsulta.DCancelarConsulta(consulta.consulta.iIdConsulta, consulta.iIdUsuarioMod, (int)consulta.consulta.iIdEstatusConsulta); if (resDelConsulta.Code != 0) { return(resDelConsulta); } //Cancelar el folio del paciente si éste fue generado con origen Particular if (detalleConsulta.iIdOrigen == (int)EnumOrigen.Particular) { EntFolioFV entFolio = new EntFolioFV { iIdEmpresa = (int)detalleConsulta.iIdEmpresa, iIdUsuario = consulta.iIdUsuarioMod, lstFolios = new List <EntFolioFVItem> { new EntFolioFVItem { iIdFolio = (int)detalleConsulta.iIdFolio } } }; BusFolio busFolio = new BusFolio(); IMDResponse <bool> resDesactivarFolios = busFolio.BEliminarFoliosEmpresa(entFolio); if (resDesactivarFolios.Code != 0) { return(resDesactivarFolios); } } response.Code = 0; response.Result = true; response.Message = "La consulta ha sido cancelada correctamente."; } catch (Exception ex) { response.Code = 67823458553368; response.Message = "Ocurrió un error inesperado al cancelar la consulta del paciente."; logger.Error(IMDSerialize.Serialize(67823458553368, $"Error en {metodo}(EntNuevaConsulta consulta): {ex.Message}", consulta, ex, response)); } return(response); }
/// <summary> /// Finaliza la consulta seteando la fecha de fin de consulta proporcionado /// </summary> /// <param name="iIdConsulta"></param> /// <param name="iIdColaborador"></param> /// <param name="iIdUsuarioMod"></param> /// <returns></returns> public IMDResponse <bool> BFinalizarConsulta(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod) { IMDResponse <bool> response = new IMDResponse <bool>(); string metodo = nameof(this.BFinalizarConsulta); logger.Info(IMDSerialize.Serialize(67823458527727, $"Inicia {metodo}(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod)", iIdConsulta, iIdColaborador, iIdUsuarioMod)); try { if (iIdConsulta == 0) { response.Code = -676363680712478; response.Message = "La información para finalizar la consulta está incompleta."; return(response); } //Obtener el detalle de la consulta actual IMDResponse <List <EntDetalleConsulta> > resGetConsulta = busConsulta.BGetDetalleConsulta(piIdConsulta: iIdConsulta); if (resGetConsulta.Code != 0) { return(resGetConsulta.GetResponse <bool>()); } if (resGetConsulta.Result.Count < 1) { response.Code = -87812314544512; response.Message = "No se encontró la consulta."; return(response); } EntConsulta entConsulta = new EntConsulta { iIdConsulta = iIdConsulta, dtFechaConsultaFin = DateTime.Now, iIdEstatusConsulta = (int)EnumEstatusConsulta.Finalizado }; //Actualizar fecha de fin de consulta IMDResponse <EntConsulta> resSaveConsulta = busConsulta.BSaveConsulta(entConsulta, iIdUsuarioMod); if (resSaveConsulta.Code != 0) { return(resSaveConsulta.GetResponse <bool>()); } EntDetalleConsulta consulta = resGetConsulta.Result.First(); EntFolioFV entFolio = new EntFolioFV { iIdEmpresa = (int)consulta.iIdEmpresa, iIdUsuario = iIdUsuarioMod, lstFolios = new List <EntFolioFVItem> { new EntFolioFVItem { iIdFolio = (int)consulta.iIdFolio } } }; if (consulta.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoCallCenter || consulta.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoAdministrativo) { if (consulta.iIdTipoProducto == (int)EnumTipoProducto.Servicio) { //Dar de baja a los folios de servicio que hayan sido atendido por colaborador callcenter IMDResponse <bool> resDesactivarFolios = busFolio.BEliminarFoliosEmpresa(entFolio); if (resDesactivarFolios.Code != 0) { return(resDesactivarFolios); } } } else { if (consulta.iIdOrigen == (int)EnumOrigen.Particular) { //Dar de baja a los folios cuando sean generados por un especialista y tengan el origen Particular IMDResponse <bool> resDesactivarFolios = busFolio.BEliminarFoliosEmpresa(entFolio); if (resDesactivarFolios.Code != 0) { return(resDesactivarFolios); } } } response.Code = 0; response.Message = "La consulta ha finalizado."; response.Result = true; } catch (Exception ex) { response.Code = 67823458528504; response.Message = "Ocurrió un error inesperado al intentar finalizar la consulta."; logger.Error(IMDSerialize.Serialize(67823458528504, $"Error en {metodo}(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod): {ex.Message}", iIdConsulta, iIdColaborador, iIdUsuarioMod, ex, response)); } return(response); }