Example #1
0
        public IMDResponse <List <EntDetalleConsulta> > CGetDetalleConsulta([FromUri] int?piIdConsulta = null, [FromUri] int?piIdPaciente = null, [FromUri] int?piIdColaborador = null, [FromUri] int?piIdEstatusConsulta = null, [FromUri] DateTime?pdtFechaProgramadaInicio = null, [FromUri] DateTime?pdtFechaProgramadaFin = null, [FromUri] DateTime?pdtFechaConsultaInicio = null, [FromUri] DateTime?pdtFechaConsultaFin = null)
        {
            IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >();

            string metodo = nameof(this.CGetDetalleConsulta);

            logger.Info(IMDSerialize.Serialize(67823458532389, $"Inicia {metodo}([FromUri]int? piIdConsulta = null, [FromUri]int? piIdPaciente = null, [FromUri]int? piIdColaborador = null, [FromUri]int? piIdEstatusConsulta = null, [FromUri]DateTime? pdtFechaProgramadaInicio = null, [FromUri]DateTime? pdtFechaProgramadaFin = null, [FromUri]DateTime? pdtFechaConsultaInicio = null, [FromUri]DateTime? pdtFechaConsultaFin = null)", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin));

            try
            {
                BusConsulta busConsulta = new BusConsulta();
                response = busConsulta.BGetDetalleConsulta(piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458533166;
                response.Message = "Ocurrió un error inesperado en el servicio al obtener el detalle de la consulta.";

                logger.Error(IMDSerialize.Serialize(67823458533166, $"Error en {metodo}([FromUri]int? piIdConsulta = null, [FromUri]int? piIdPaciente = null, [FromUri]int? piIdColaborador = null, [FromUri]int? piIdEstatusConsulta = null, [FromUri]DateTime? pdtFechaProgramadaInicio = null, [FromUri]DateTime? pdtFechaProgramadaFin = null, [FromUri]DateTime? pdtFechaConsultaInicio = null, [FromUri]DateTime? pdtFechaConsultaFin = null): {ex.Message}", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin, ex, response));
            }
            return(response);
        }
Example #2
0
        /// <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);
        }