/// <summary> /// Retorna una lista de id y descripcion de un catálogo del sistema /// </summary> /// <param name="ds"></param> /// <param name="index"></param> /// <returns></returns> public List <EntCatalogo> BReadCat(DataSet ds, int index) { List <EntCatalogo> values = new List <EntCatalogo>(); try { DataTable dt = ds.Tables[index]; foreach (DataRow item in dt.Rows) { IMDDataRow dr = new IMDDataRow(item); //Leer datos EntCatalogo entCatalogo = new EntCatalogo { fiId = dr.ConvertTo <int>("fiId"), fsDescripcion = dr.ConvertTo <string>("fsDescripcion") }; values.Add(entCatalogo); } } catch (Exception) { //Mantener lista vacía } return(values); }
/// <summary> /// Reenviar el correo de una orden de compra /// </summary> /// <param name="psOrderId"></param> /// <returns></returns> public IMDResponse <bool> BReenviarCorreo(string psOrderId) { IMDResponse <bool> response = new IMDResponse <bool>(); string metodo = nameof(this.BReenviarCorreo); logger.Info(IMDSerialize.Serialize(67823458628737, $"Inicia {metodo}(string psOrderId)", psOrderId)); try { if (string.IsNullOrWhiteSpace(psOrderId)) { response.Code = -345673; response.Message = "No se especificó la orden para guardar el correo."; return(response); } IMDResponse <DataTable> resGetData = datCorreo.DGetCorreo(psOrderId); if (resGetData.Code != 0) { return(resGetData.GetResponse <bool>()); } if (resGetData.Result.Rows.Count != 1) { response.Code = -345673; response.Message = "La orden no existe en el registro de correos del sistema."; return(response); } IMDDataRow dr = new IMDDataRow(resGetData.Result.Rows[0]); EntOrderEmail entOrderEmail = new EntOrderEmail { sBody = dr.ConvertTo <string>("sBody"), sOrderId = dr.ConvertTo <string>("sOrderId"), sSubject = dr.ConvertTo <string>("sSubject"), sTo = dr.ConvertTo <string>("sTo"), }; IMDResponse <bool> resEnviar = this.BEnviarEmail("", "", "", entOrderEmail.sSubject + " (Reenviado)", entOrderEmail.sBody, entOrderEmail.sTo, "", ""); if (resEnviar.Code != 0) { return(resEnviar); } response.Code = 0; response.Message = $"Se ha reenviado el detalle de la orden a {entOrderEmail.sTo}."; response.Result = true; } catch (Exception ex) { response.Code = 67823458629514; response.Message = "Ocurrió un error inesperado al reenviar el correo de la orden al cliente"; logger.Error(IMDSerialize.Serialize(67823458629514, $"Error en {metodo}(string psOrderId): {ex.Message}", psOrderId, ex, response)); } return(response); }
/// <summary> /// Obtener el status actual del colaborador /// </summary> /// <param name="piIdColaborador"></param> /// <returns></returns> public IMDResponse <EntColaboradorStatus> BGetColaboradorStatus(int piIdColaborador) { IMDResponse <EntColaboradorStatus> response = new IMDResponse <EntColaboradorStatus>(); string metodo = nameof(this.BGetColaboradorStatus); logger.Info(IMDSerialize.Serialize(67823458648939, $"Inicia {metodo}(int piIdColaborador)", piIdColaborador)); try { if (piIdColaborador < 1) { response.Code = -345687324773; response.Message = "No se especificó el colaborador."; return(response); } IMDResponse <DataTable> resGetStatus = datColaborador.DGetColaboradorStatus(piIdColaborador); if (resGetStatus.Code != 0) { return(resGetStatus.GetResponse <EntColaboradorStatus>()); } if (resGetStatus.Result.Rows.Count != 1) { response.Code = -345687324773; response.Message = "No se encontró el colaborador especificado."; return(response); } IMDDataRow dr = new IMDDataRow(resGetStatus.Result.Rows[0]); EntColaboradorStatus entColaboradorStatus = new EntColaboradorStatus { bOcupado = Convert.ToBoolean(dr.ConvertTo <int>("bOcupado")), bOnline = Convert.ToBoolean(dr.ConvertTo <int>("bOnline")), }; response.Code = 0; response.Message = "Se ha consultado el estatus del colaborador."; response.Result = entColaboradorStatus; } catch (Exception ex) { response.Code = 67823458649716; response.Message = "Ocurrió un error inesperado al consultar el status del colaborador."; logger.Error(IMDSerialize.Serialize(67823458649716, $"Error en {metodo}(int piIdColaborador): {ex.Message}", piIdColaborador, ex, response)); } return(response); }
/// <summary> /// Consulta si existe una sala de colaborador disponible /// </summary> /// <param name="bAgendada"></param> /// <param name="iIdUsuario"></param> /// <param name="dtFechaConsulta"></param> /// <returns></returns> public IMDResponse <EntColaborador> BObtenerSala(bool?bAgendada = null, int?iIdUsuario = null, DateTime?dtFechaConsulta = null) { IMDResponse <EntColaborador> response = new IMDResponse <EntColaborador>(); EntColaborador oColaborador = new EntColaborador(); string metodo = nameof(this.BObtenerSala); logger.Info(IMDSerialize.Serialize(67823458591441, $"Inicia {metodo}(int? iIdTipoProducto = null, int? iIdUsuario = null, DateTime? dtFechaConsulta = null)")); try { IMDResponse <DataTable> dtColaborador = datColaborador.DObtenerSala(bAgendada, iIdUsuario, dtFechaConsulta); if (dtColaborador.Code != 0) { return(dtColaborador.GetResponse <EntColaborador>()); } foreach (DataRow item in dtColaborador.Result.Rows) { IMDDataRow rows = new IMDDataRow(item); oColaborador = new EntColaborador { iIdColaborador = rows.ConvertTo <int>("iIdColaborador"), iNumSala = rows.ConvertTo <int?>("iNumSala") }; } //Verificar si se ha encontrado una sala disponible string medicosOcupados = "Todos los médicos se encuentran ocupados en este momento."; if (oColaborador.iNumSala == null) { response.Code = -7262876723423; response.Message = medicosOcupados; return(response); } response.Code = 0; response.Message = dtColaborador.Result.Rows.Count > 0 ? "Se ha encontrado un sala disponible." : medicosOcupados; response.Result = oColaborador; } catch (Exception ex) { response.Code = 67823458592218; response.Message = "Ocurrió un error inesperado al obtener la sala del colaborador."; logger.Error(IMDSerialize.Serialize(67823458592218, $"Error en {metodo}(int? iIdTipoProducto = null, int? iIdUsuario = null, DateTime? dtFechaConsulta = null): {ex.Message}", ex, response)); } return(response); }
//Obtener los perfiles del sistema public IMDResponse <List <EntPerfil> > BObtenerPerfil(int?iIdPerfil, bool bActivo, bool bBaja) { IMDResponse <List <EntPerfil> > response = new IMDResponse <List <EntPerfil> >(); string metodo = nameof(this.BObtenerPerfil); logger.Info(IMDSerialize.Serialize(67823458357564, $"Inicia {metodo}(int? iIdPerfil, bool bActivo, bool bBaja)", iIdPerfil, bActivo, bBaja)); try { IMDResponse <DataTable> dtPerfil = datPerfil.DObtenerPerfil(iIdPerfil, bActivo, bBaja); if (dtPerfil.Code != 0) { return(dtPerfil.GetResponse <List <EntPerfil> >()); } List <EntPerfil> lstPerfiles = new List <EntPerfil>(); if (dtPerfil.Code != 0) { response.Code = -71470986457102; response.Message = "El sistema no cuenta con perfiles activos."; return(response); } foreach (DataRow item in dtPerfil.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); EntPerfil entPerfil = new EntPerfil(); entPerfil.iIdPerfil = dr.ConvertTo <int>("iIdPerfil"); entPerfil.sNombre = dr.ConvertTo <string>("sNombre"); entPerfil.bActivo = dr.ConvertTo <bool>("bActivo"); entPerfil.bBaja = dr.ConvertTo <bool>("bBaja"); lstPerfiles.Add(entPerfil); } response.Result = lstPerfiles; response.Message = "Los perfiles del sistema han sido obtenidos."; } catch (Exception ex) { response.Code = 67823458358341; response.Message = "Ocurrió un error inesperado al consultar los perfiles del sistema."; logger.Error(IMDSerialize.Serialize(67823458358341, $"Error en {metodo}(int? iIdPerfil, bool bActivo, bool bBaja): {ex.Message}", iIdPerfil, bActivo, bBaja, ex, response)); } return(response); }
/// <summary> /// Obtener la lista de las especialidades /// </summary> /// <param name="piIdEspecialidad"></param> /// <returns></returns> public IMDResponse <List <EntEspecialidad> > BGetEspecialidad(int?piIdEspecialidad = null) { IMDResponse <List <EntEspecialidad> > response = new IMDResponse <List <EntEspecialidad> >(); string metodo = nameof(this.BGetEspecialidad); logger.Info(IMDSerialize.Serialize(67823458451581, $"Inicia {metodo}(int? piIdEspecialidad = null)", piIdEspecialidad)); try { //Consultar especialidades IMDResponse <DataTable> respuestaGetEspecialidades = datEspecialidad.DGetEspecialidad(piIdEspecialidad); if (respuestaGetEspecialidades.Code != 0) { return(respuestaGetEspecialidades.GetResponse <List <EntEspecialidad> >()); } List <EntEspecialidad> lstEspecialidades = new List <EntEspecialidad>(); foreach (DataRow drEspecialidad in respuestaGetEspecialidades.Result.Rows) { IMDDataRow dr = new IMDDataRow(drEspecialidad); EntEspecialidad especialidad = new EntEspecialidad { bActivo = dr.ConvertTo <bool>("bActivo"), bBaja = dr.ConvertTo <bool>("bBaja"), dtFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion"), iIdEspecialidad = dr.ConvertTo <int>("iIdEspecialidad"), sNombre = dr.ConvertTo <string>("sNombre") }; especialidad.sFechaCreacion = especialidad.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm"); lstEspecialidades.Add(especialidad); } response.Code = 0; response.Message = "Las especialidades han sido obtenidas."; response.Result = lstEspecialidades; } catch (Exception ex) { response.Code = 67823458452358; response.Message = "Ocurrió un error inesperado al consultar las especialidades."; logger.Error(IMDSerialize.Serialize(67823458452358, $"Error en {metodo}(int? piIdEspecialidad = null): {ex.Message}", piIdEspecialidad, ex, response)); } return(response); }
/// <summary> /// Obtiene los detalles de la consulta del paciente que debe estar programada en el momento de la solicitud /// </summary> /// <param name="piIdPaciente"></param> /// <param name="piIdColaborador"></param> /// <returns></returns> public IMDResponse <List <EntDetalleConsulta> > BGetConsultaMomento(int piIdPaciente, int piIdColaborador) { IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >(); string metodo = nameof(this.BGetConsultaMomento); logger.Info(IMDSerialize.Serialize(67823458588333, $"Inicia {metodo}(int piIdPaciente, int piIdColaborador)", piIdPaciente, piIdColaborador)); try { int iMinutosToleranciaAntes = Convert.ToInt32(ConfigurationManager.AppSettings["iMinToleraciaConsultaInicio"]); int iMinutosToleranciaDespues = Convert.ToInt32(ConfigurationManager.AppSettings["iMinToleraciaConsultaFin"]); IMDResponse <DataTable> resGetConsulta = datConsulta.DGetConsultaProgramada(piIdPaciente, piIdColaborador, iMinutosToleranciaAntes, iMinutosToleranciaDespues); if (resGetConsulta.Code != 0) { return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >()); } List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>(); foreach (DataRow drConsulta in resGetConsulta.Result.Rows) { IMDDataRow dr = new IMDDataRow(drConsulta); EntDetalleConsulta consulta = new EntDetalleConsulta { dtFechaConsultaFin = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"), dtFechaConsultaInicio = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"), dtFechaCreacion = dr.ConvertTo <DateTime?>("dtFechaCreacion"), dtFechaProgramadaFin = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"), dtFechaProgramadaInicio = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"), iIdColaborador = dr.ConvertTo <int?>("iIdColaborador"), iIdConsulta = dr.ConvertTo <int?>("iIdConsulta"), iIdEstatusConsulta = dr.ConvertTo <int?>("iIdEstatusConsulta"), iIdPaciente = dr.ConvertTo <int?>("iIdPaciente"), }; lstConsultas.Add(consulta); } response.Code = 0; response.Message = "Se han obtenido las consultas programadas en el horario programado actual."; response.Result = lstConsultas; } catch (Exception ex) { response.Code = 67823458589110; response.Message = "Ocurrió un error inesperado al verificar el horario de consulta del paciente."; logger.Error(IMDSerialize.Serialize(67823458589110, $"Error en {metodo}(int piIdPaciente, int piIdColaborador): {ex.Message}", piIdPaciente, piIdColaborador, ex, response)); } return(response); }
/// <summary> /// Guarda los datos de una empresa /// </summary> /// <param name="entEmpresa"></param> /// <returns></returns> public IMDResponse <EntEmpresa> BSaveEmpresa(EntEmpresa entEmpresa) { IMDResponse <bool> responseValidation = new IMDResponse <bool>(); IMDResponse <EntEmpresa> response = new IMDResponse <EntEmpresa>(); string metodo = nameof(this.BSaveEmpresa); logger.Info(IMDSerialize.Serialize(67823458383982, $"Inicia {metodo}(EntEmpresa entEmpresa)", entEmpresa)); try { responseValidation = BValidaDatos(entEmpresa); if (responseValidation.Code != 0) { return(response = responseValidation.GetResponse <EntEmpresa>()); } IMDResponse <DataTable> dtEmpresa = datEmpresa.DSaveEmpresa(entEmpresa); if (dtEmpresa.Code != 0) { return(dtEmpresa.GetResponse <EntEmpresa>()); } if (dtEmpresa.Result.Rows.Count < 1) { response.Code = -76768273456; response.Message = "No ha sido posible generar la empresa/cliente."; return(response); } EntEmpresa oEmpresa = new EntEmpresa(); foreach (DataRow item in dtEmpresa.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); oEmpresa.iIdEmpresa = dr.ConvertTo <int>("iIdEmpresa"); oEmpresa.sNombre = dr.ConvertTo <string>("sNombre"); oEmpresa.sFolioEmpresa = dr.ConvertTo <string>("sFolioEmpresa"); oEmpresa.sCorreo = dr.ConvertTo <string>("sCorreo"); oEmpresa.sFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion").ToString("dd/MM/yyyy"); oEmpresa.bActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")); oEmpresa.bBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")); } response.Code = 0; response.Message = entEmpresa.iIdEmpresa == 0 ? "La empresa ha sido guardada correctamente." : "La empresa ha sido actualizada correctamente."; response.Result = oEmpresa; } catch (Exception ex) { response.Code = 67823458384759; response.Message = "Ocurrió un error inesperado al intentar guardar los datos de la empresa."; logger.Error(IMDSerialize.Serialize(67823458384759, $"Error en {metodo}(EntEmpresa entEmpresa): {ex.Message}", entEmpresa, ex, response)); } return(response); }
/// <summary> /// Obtiene la lista de las empresas solicitadas /// </summary> /// <param name="iIdEmpresa"></param> /// <param name="psCorreo"></param> /// <returns></returns> public IMDResponse <List <EntEmpresa> > BGetEmpresas(int?iIdEmpresa = null, string psCorreo = null, string psFolioEmpresa = null) { IMDResponse <List <EntEmpresa> > response = new IMDResponse <List <EntEmpresa> >(); string metodo = nameof(this.BGetEmpresas); logger.Info(IMDSerialize.Serialize(67823458393306, $"Inicia {metodo}(int? iIdEmpresa, string psCorreo = null)", iIdEmpresa, psCorreo)); try { IMDResponse <DataTable> dtEmpresa = datEmpresa.DGetEmpresas(iIdEmpresa, psCorreo, psFolioEmpresa); List <EntEmpresa> lstEmpresa = new List <EntEmpresa>(); EntEmpresa entEmpresa; if (dtEmpresa.Result.Rows.Count < 1) { response = dtEmpresa.GetResponse <List <EntEmpresa> >(); } foreach (DataRow item in dtEmpresa.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); entEmpresa = new EntEmpresa(); entEmpresa.iIdEmpresa = dr.ConvertTo <int>("iIdEmpresa"); entEmpresa.sNombre = dr.ConvertTo <string>("sNombre"); entEmpresa.sFolioEmpresa = dr.ConvertTo <string>("sFolioEmpresa"); entEmpresa.sCorreo = dr.ConvertTo <string>("sCorreo"); entEmpresa.sFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion").ToShortDateString(); entEmpresa.bActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")); entEmpresa.bBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")); lstEmpresa.Add(entEmpresa); } response.Code = 0; response.Message = "La lista de empresas ha sido obtenida."; response.Result = lstEmpresa; } catch (Exception ex) { response.Code = 67823458394083; response.Message = "Ocurrió un error inesperado al obtener los datos de la empresa."; logger.Error(IMDSerialize.Serialize(67823458394083, $"Error en {metodo}(int? iIdEmpresa, string psCorreo = null): {ex.Message}", iIdEmpresa, psCorreo, ex, response)); } return(response); }
/// <summary> /// Función: Genera un ID de cupón /// Creado: Cristopher Noh 28/07/2020 /// Modificado: /// </summary> /// <returns></returns> public IMDResponse <int> BNuevoIdCupon() { IMDResponse <int> response = new IMDResponse <int>(); string metodo = nameof(this.BNuevoIdCupon); logger.Info(IMDSerialize.Serialize(67823458211488, $"Inicia {metodo}()")); try { IMDResponse <DataTable> respuestaObtenerId = datPromociones.DGetNewCouponID(); if (respuestaObtenerId.Code != 0) { return(respuestaObtenerId.GetResponse <int>()); } IMDDataRow dr = new IMDDataRow(respuestaObtenerId.Result.Rows[0]); int nuevoCuponID = dr.ConvertTo <int>("iIdCupon"); if (nuevoCuponID == 0) { response.Code = 67823458233244; response.Message = "No se pudo generar el nuevo cupón."; return(response); } response.Code = 0; response.Result = nuevoCuponID; } catch (Exception ex) { response.Code = 67823458212265; response.Message = "Ocurrió un error inesperado al generar el nuevo ID del cupón."; logger.Error(IMDSerialize.Serialize(67823458212265, $"Error en {metodo}(): {ex.Message}", ex, response)); } return(response); }
/// <summary> /// Obtener los permisos del sistema o de un perfil proporcionado /// </summary> /// <param name="iIdPerfil"></param> /// <returns></returns> //NO SE USA public IMDResponse <List <EntPermisoSistema> > BObtenerPermisoxPerfil(int?iIdPerfil) { IMDResponse <List <EntPermisoSistema> > response = new IMDResponse <List <EntPermisoSistema> >(); string metodo = nameof(this.BObtenerPermisoxPerfil); logger.Info(IMDSerialize.Serialize(67823458354456, $"Inicia {metodo}(int? iIdPermiso)", iIdPerfil)); try { IMDResponse <DataSet> dtPermisos = datPermiso.DObtenerPermisosPorPerfil(iIdPerfil); if (dtPermisos.Code != 0) { return(dtPermisos.GetResponse <List <EntPermisoSistema> >()); } DataRowCollection drBotones = dtPermisos.Result.Tables[2].Rows; DataRowCollection drSubmodulos = dtPermisos.Result.Tables[1].Rows; DataRowCollection drModulos = dtPermisos.Result.Tables[0].Rows; List <EntPermisoSistema> lstPermisoSistema = new List <EntPermisoSistema>(); List <EntSubModuloPermiso> lstPermisoSubModulo = new List <EntSubModuloPermiso>(); List <EntBotonPermiso> lstPermisoBotones = new List <EntBotonPermiso>(); //Leer los módulos, submódulos y botones que se tienen permitidos al perfil foreach (DataRow item in drBotones) { IMDDataRow dr = new IMDDataRow(item); EntBotonPermiso entBoton = new EntBotonPermiso(); entBoton.iIdBoton = dr.ConvertTo <int>("iIdBoton"); entBoton.iIdModulo = dr.ConvertTo <int>("iIdModulo"); entBoton.iIdSubModulo = dr.ConvertTo <int>("iIdSubModulo"); entBoton.sNombre = dr.ConvertTo <string>("sNombre"); lstPermisoBotones.Add(entBoton); } foreach (DataRow item in drSubmodulos) { IMDDataRow dr = new IMDDataRow(item); EntSubModuloPermiso entSubModulo = new EntSubModuloPermiso(); entSubModulo.iIdModulo = dr.ConvertTo <int>("iIdModulo"); entSubModulo.iIdSubModulo = dr.ConvertTo <int>("iIdSubModulo"); entSubModulo.sNombre = dr.ConvertTo <string>("sNombre"); lstPermisoSubModulo.Add(entSubModulo); } foreach (DataRow item in drModulos) { IMDDataRow dr = new IMDDataRow(item); EntPermisoSistema permiso = new EntPermisoSistema(); permiso.iIdModulo = dr.ConvertTo <int>("iIdModulo"); permiso.sNombre = dr.ConvertTo <string>("sNombre"); lstPermisoSistema.Add(permiso); } //Armar obtejo lista de los permisos lstPermisoBotones = lstPermisoBotones.GroupBy(x => new { x.iIdModulo, x.iIdSubModulo, x.iIdBoton }).Select(x => new EntBotonPermiso { iIdModulo = x.Key.iIdModulo, iIdSubModulo = x.Key.iIdSubModulo, iIdBoton = x.Key.iIdBoton, sNombre = x.Select(y => y.sNombre).First() }).ToList(); lstPermisoSubModulo = lstPermisoSubModulo.GroupBy(x => new { x.iIdModulo, x.iIdSubModulo }).Select(x => new EntSubModuloPermiso { iIdModulo = x.Key.iIdModulo, iIdSubModulo = x.Key.iIdSubModulo, sNombre = x.Select(y => y.sNombre).First(), lstBotones = lstPermisoBotones.Where(y => y.iIdModulo == x.Key.iIdModulo && y.iIdSubModulo == x.Key.iIdSubModulo).ToList() }).ToList(); lstPermisoSistema = lstPermisoSistema.GroupBy(x => x.iIdModulo).Select(x => new EntPermisoSistema { iIdModulo = x.Key, sNombre = x.Select(y => y.sNombre).First(), lstSubModulo = lstPermisoSubModulo.Where(y => y.iIdModulo == x.Key).ToList() }).ToList(); response.Code = 0; response.Message = "Lista de permisos"; response.Result = lstPermisoSistema; } catch (Exception ex) { response.Code = 67823458355233; response.Message = "Ocurrió un error inesperado al consultar los permisos."; logger.Error(IMDSerialize.Serialize(67823458355233, $"Error en {metodo}(int? iIdPermiso): {ex.Message}", iIdPerfil, ex, response)); } return(response); }
public IMDResponse <List <EntPaciente> > BGetPacientes(int?piIdPaciente = null, int?piIdFolio = null) { IMDResponse <List <EntPaciente> > response = new IMDResponse <List <EntPaciente> >(); string metodo = nameof(this.BGetPacientes); logger.Info(IMDSerialize.Serialize(67823458516849, $"Inicia {metodo}(int? piIdPaciente = null, int? piIdFolio = null)", piIdPaciente, piIdFolio)); try { IMDResponse <DataTable> resGetPacientes = datPaciente.DGetPacientes(piIdPaciente, piIdFolio); if (resGetPacientes.Code != 0) { return(resGetPacientes.GetResponse <List <EntPaciente> >()); } List <EntPaciente> lstPacientes = new List <EntPaciente>(); foreach (DataRow drPaciente in resGetPacientes.Result.Rows) { IMDDataRow dr = new IMDDataRow(drPaciente); EntPaciente paciente = new EntPaciente() { iIdFolio = dr.ConvertTo <int>("iIdFolio"), iIdPaciente = dr.ConvertTo <int>("iIdPaciente"), iIdSexo = dr.ConvertTo <int>("iIdSexo"), sApellidoMaterno = dr.ConvertTo <string>("sApellidoMaterno"), sApellidoPaterno = dr.ConvertTo <string>("sApellidoPaterno"), sCorreo = dr.ConvertTo <string>("sCorreo"), dtFechaNacimiento = dr.ConvertTo <DateTime?>("dtFechaNacimiento"), sdtFechaNacimiento = string.Empty, sFolio = dr.ConvertTo <string>("sFolio"), sNombre = dr.ConvertTo <string>("sNombre"), sSexo = dr.ConvertTo <string>("sSexo"), sTelefono = dr.ConvertTo <string>("sTelefono"), sTipoSangre = dr.ConvertTo <string>("sTipoSangre"), }; paciente.sdtFechaNacimiento = paciente.dtFechaNacimiento?.ToString("dd/MM/yyyy"); lstPacientes.Add(paciente); } response.Code = 0; response.Message = lstPacientes.Count == 0 ? "No se encontraron pacientes en la lista." : "La lista de pacientes ha sido obtenida."; response.Result = lstPacientes; } catch (Exception ex) { response.Code = 67823458517626; response.Message = "Ocurrió un error inesperado al obtener la lista de pacientes."; logger.Error(IMDSerialize.Serialize(67823458517626, $"Error en {metodo}(int? piIdPaciente = null, int? piIdFolio = null): {ex.Message}", piIdPaciente, piIdFolio, ex, response)); } return(response); }
/// <summary> /// Función: Obtiene la lista de cupones /// Creado: Cristopher Noh 28/07/2020 /// Modificado: /// </summary> /// <param name="piIdCupon">Id de cupón</param> /// <param name="piIdCuponCategoria">Categoría del cupón</param> /// <param name="psDescripcion">Descripción del cupón</param> /// <param name="psCodigo">Código de cupón</param> /// <param name="pdtFechaVencimientoInicio">Fecha de vencimiento desde...</param> /// <param name="pdtFechaVencimientoFin">..a la Fecha de vencimiento</param> /// <param name="pdtFechaCreacionInicio">Fecha de creación desde...</param> /// <param name="pdtFechaCreacionFin">...a la fecha de creación</param> /// <param name="pbActivo">Cupón activo</param> /// <param name="pbBaja">Cupón inactivo</param> /// <returns></returns> public IMDResponse <List <EntCupon> > BObtenerCupones(int?piIdCupon = null, int?piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime?pdtFechaVencimientoInicio = null, DateTime?pdtFechaVencimientoFin = null, DateTime?pdtFechaCreacionInicio = null, DateTime?pdtFechaCreacionFin = null, bool?pbActivo = true, bool?pbBaja = false, bool?pbVigente = null) { IMDResponse <List <EntCupon> > response = new IMDResponse <List <EntCupon> >(); string metodo = nameof(this.BObtenerCupones); logger.Info(IMDSerialize.Serialize(67823458191286, $"Inicia {metodo}(int? piIdCupon = null, int? piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime? pdtFechaVencimientoInicio = null, DateTime? pdtFechaVencimientoFin = null, DateTime? pdtFechaCreacionInicio = null, DateTime? pdtFechaCreacionFin = null, bool pbActivo = true, bool pbBaja = false)", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja)); try { IMDResponse <DataTable> respuestaObtenerCupones = datPromociones.DGetCupones(piIdCupon, piIdCuponCategoria, pbVigente, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja); if (respuestaObtenerCupones.Code != 0) { return(respuestaObtenerCupones.GetResponse <List <EntCupon> >()); } List <EntCupon> listaCupones = new List <EntCupon>(); foreach (DataRow filaCupon in respuestaObtenerCupones.Result.Rows) { IMDDataRow dr = new IMDDataRow(filaCupon); EntCupon cupon = new EntCupon(); cupon.fbActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")); cupon.fbBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")); cupon.fbVigente = Convert.ToBoolean(dr.ConvertTo <int>("bVigente")); cupon.fdtFechaVencimiento = dr.ConvertTo <DateTime?>("dtFechaVencimiento"); cupon.sFechaVencimiento = cupon.fdtFechaVencimiento == null ? "Hasta agotar" : ((DateTime)cupon.fdtFechaVencimiento).ToString("dd/MM/yy HH:mm"); cupon.dtFechaCreacion = dr.ConvertTo <DateTime?>("dtFechaCreacion"); cupon.sFechaCreacion = cupon.dtFechaCreacion == null ? null : ((DateTime)cupon.dtFechaCreacion).ToString("dd/MM/yy HH:mm"); cupon.fiIdCupon = dr.ConvertTo <int>("iIdCupon"); cupon.fiIdCuponCategoria = dr.ConvertTo <int>("iIdCuponCategoria"); cupon.fiMesBono = dr.ConvertTo <int?>("iMesBono"); cupon.fiTotalLanzamiento = dr.ConvertTo <int>("iTotalLanzamiento"); cupon.fiTotalCanjeado = dr.ConvertTo <int>("iTotalCanjeado"); cupon.fnMontoDescuento = dr.ConvertTo <double?>("nMontoDescuento"); cupon.sMontoDescuento = cupon.fnMontoDescuento == null ? null : ((double)cupon.fnMontoDescuento / 100d).ToString("C"); cupon.fnPorcentajeDescuento = dr.ConvertTo <double?>("nPorcentajeDescuento"); cupon.sPorcentajeDescuento = cupon.fnPorcentajeDescuento == null ? null : ((double)cupon.fnPorcentajeDescuento).ToString("#%"); cupon.fsCodigo = dr.ConvertTo <string>("sCodigo"); cupon.fsDescripcion = dr.ConvertTo <string>("sDescripcion"); cupon.fsDescripcionCategoria = dr.ConvertTo <string>("sDescripcionCategoria"); listaCupones.Add(cupon); } response.Code = 0; response.Message = "Lista de cupones obtenida."; response.Result = listaCupones; } catch (Exception ex) { response.Code = 67823458192063; response.Message = "Ocurrió un error al intentar consultar los cupones"; logger.Error(IMDSerialize.Serialize(67823458192063, $"Error en {metodo}(int? piIdCupon = null, int? piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime? pdtFechaVencimientoInicio = null, DateTime? pdtFechaVencimientoFin = null, DateTime? pdtFechaCreacionInicio = null, DateTime? pdtFechaCreacionFin = null, bool pbActivo = true, bool pbBaja = false): {ex.Message}", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja, ex, response)); } return(response); }
/// <summary> /// Obtiene las consultas programadas en el horario solicitado para una nueva consulta /// </summary> /// <param name="piIdColaborador"></param> /// <param name="piIdConsulta"></param> /// <param name="pdtFechaProgramadaInicio"></param> /// <param name="pdtFechaProgramadaFin"></param> /// <returns></returns> public IMDResponse <List <EntDetalleConsulta> > BGetDisponibilidadConsulta(int?piIdColaborador = null, int?piIdConsulta = null, DateTime?pdtFechaProgramadaInicio = null, DateTime?pdtFechaProgramadaFin = null) { IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >(); string metodo = nameof(this.BGetDisponibilidadConsulta); logger.Info(IMDSerialize.Serialize(67823458537051, $"Inicia {metodo}(int piIdColaborador, int piIdConsulta, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null)", piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin)); try { IMDResponse <DataTable> resGetConsulta = datConsulta.DGetDisponibilidadConsulta(piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin); if (resGetConsulta.Code != 0) { return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >()); } List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>(); foreach (DataRow drConsulta in resGetConsulta.Result.Rows) { IMDDataRow dr = new IMDDataRow(drConsulta); EntDetalleConsulta consulta = new EntDetalleConsulta { dtFechaConsultaFin = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"), dtFechaConsultaInicio = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"), dtFechaCreacion = dr.ConvertTo <DateTime?>("dtFechaCreacion"), dtFechaProgramadaFin = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"), dtFechaProgramadaInicio = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"), dtFechaVencimiento = dr.ConvertTo <DateTime?>("dtFechaVencimiento"), iIdColaborador = dr.ConvertTo <int?>("iIdColaborador"), iIdConsulta = dr.ConvertTo <int?>("iIdConsulta"), iIdEmpresa = dr.ConvertTo <int?>("iIdEmpresa"), iIdEspecialidad = dr.ConvertTo <int?>("iIdEspecialidad"), iIdEstatusConsulta = dr.ConvertTo <int?>("iIdEstatusConsulta"), iIdFolio = dr.ConvertTo <int?>("iIdFolio"), iIdPaciente = dr.ConvertTo <int?>("iIdPaciente"), iIdTipoDoctor = dr.ConvertTo <int?>("iIdTipoDoctor"), iIdTipoProducto = dr.ConvertTo <int?>("iIdTipoProducto"), iNumSala = dr.ConvertTo <int?>("iNumSala"), sFolio = dr.ConvertTo <string>("sFolio"), sFolioEmpresa = dr.ConvertTo <string>("sFolioEmpresa"), }; consulta.sFechaConsultaFin = consulta.dtFechaConsultaFin?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaConsultaInicio = consulta.dtFechaConsultaInicio?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaCreacion = consulta.dtFechaCreacion?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaNacimientoPaciente = consulta.dtFechaNacimientoPaciente?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaProgramadaFin = consulta.dtFechaProgramadaFin?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaProgramadaInicio = consulta.dtFechaProgramadaInicio?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaVencimiento = consulta.dtFechaVencimiento?.ToString("dd/MM/yyyy HH:mm"); lstConsultas.Add(consulta); } response.Code = 0; response.Message = "Se ha consultado la disponibilidad del colaborador."; response.Result = lstConsultas; } catch (Exception ex) { response.Code = 67823458537828; response.Message = "Ocurrió un error inesperado al consultar la disponibilidad del colaborador."; logger.Error(IMDSerialize.Serialize(67823458537828, $"Error en {metodo}(int piIdColaborador, int piIdConsulta, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null): {ex.Message}", piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, ex, response)); } return(response); }
/// <summary> /// Obtiene la lista de detalles de la consulta solicitada /// </summary> /// <param name="piIdConsulta">Filtro por consulta</param> /// <param name="piIdPaciente">Filtro por paciente</param> /// <param name="piIdColaborador">Filtro por colaborador</param> /// <param name="piIdEstatusConsulta">Filtro por estatus de consulta</param> /// <param name="pdtFechaProgramadaInicio">Filtro</param> /// <param name="pdtFechaProgramadaFin">Filtro</param> /// <param name="pdtFechaConsultaInicio">Filtro</param> /// <param name="pdtFechaConsultaFin">Filtro</param> /// <returns></returns> public IMDResponse <List <EntDetalleConsulta> > BGetDetalleConsulta(int?piIdConsulta = null, int?piIdPaciente = null, int?piIdColaborador = null, int?piIdEstatusConsulta = null, DateTime?pdtFechaProgramadaInicio = null, DateTime?pdtFechaProgramadaFin = null, DateTime?pdtFechaConsultaInicio = null, DateTime?pdtFechaConsultaFin = null) { IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >(); string metodo = nameof(this.BGetDetalleConsulta); logger.Info(IMDSerialize.Serialize(67823458530835, $"Inicia {metodo}(int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdEstatusConsulta = null, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null, DateTime? pdtFechaConsultaInicio = null, DateTime? pdtFechaConsultaFin = null)", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin)); try { pdtFechaProgramadaInicio = pdtFechaProgramadaInicio?.Date; pdtFechaProgramadaFin = pdtFechaProgramadaFin?.AddDays(1).Date; //Consultar datos de la base IMDResponse <DataTable> resGetConsulta = datConsulta.DGetDetalleConsulta(piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin); if (resGetConsulta.Code != 0) { return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >()); } List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>(); foreach (DataRow drConsulta in resGetConsulta.Result.Rows) { IMDDataRow dr = new IMDDataRow(drConsulta); EntDetalleConsulta consulta = new EntDetalleConsulta { bTerminosYCondiciones = Convert.ToBoolean(dr.ConvertTo <int>("bTerminosYCondiciones")), dtFechaConsultaFin = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"), dtFechaConsultaInicio = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"), dtFechaCreacion = dr.ConvertTo <DateTime?>("dtFechaCreacion"), dtFechaNacimientoPaciente = dr.ConvertTo <DateTime?>("dtFechaNacimientoPaciente"), dtFechaProgramadaFin = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"), dtFechaProgramadaInicio = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"), dtFechaVencimiento = dr.ConvertTo <DateTime?>("dtFechaVencimiento"), iIdColaborador = dr.ConvertTo <int?>("iIdColaborador"), iIdConsulta = dr.ConvertTo <int?>("iIdConsulta"), iIdEmpresa = dr.ConvertTo <int?>("iIdEmpresa"), iIdEspecialidad = dr.ConvertTo <int?>("iIdEspecialidad"), iIdEstatusConsulta = dr.ConvertTo <int?>("iIdEstatusConsulta"), iIdFolio = dr.ConvertTo <int?>("iIdFolio"), iIdOrigen = dr.ConvertTo <int?>("iIdOrigen"), iIdPaciente = dr.ConvertTo <int?>("iIdPaciente"), iIdTipoDoctor = dr.ConvertTo <int?>("iIdTipoDoctor"), iIdTipoProducto = dr.ConvertTo <int?>("iIdTipoProducto"), iNumSala = dr.ConvertTo <int?>("iNumSala"), sApellidoMaternoPaciente = dr.ConvertTo <string>("sApellidoMaternoPaciente"), sApellidoPaternoPaciente = dr.ConvertTo <string>("sApellidoPaternoPaciente"), sCorreoColaborador = dr.ConvertTo <string>("sCorreoColaborador"), sCorreoEmpresa = dr.ConvertTo <string>("sCorreoEmpresa"), sCorreoPaciente = dr.ConvertTo <string>("sCorreoPaciente"), sEspecialidad = dr.ConvertTo <string>("sEspecialidad"), sEstatusConsulta = dr.ConvertTo <string>("sEstatusConsulta"), sFechaConsultaFin = string.Empty, sFechaConsultaInicio = string.Empty, sFechaCreacion = string.Empty, sFechaNacimientoPaciente = string.Empty, sFechaProgramadaFin = string.Empty, sFechaProgramadaInicio = string.Empty, sFechaVencimiento = string.Empty, sFolio = dr.ConvertTo <string>("sFolio"), sPassword = dr.ConvertTo <string>("sPassword"), sFolioEmpresa = dr.ConvertTo <string>("sFolioEmpresa"), sNombreColaborador = dr.ConvertTo <string>("sNombreColaborador"), sNombreEmpresa = dr.ConvertTo <string>("sNombreEmpresa"), sNombrePaciente = dr.ConvertTo <string>("sNombrePaciente"), sNombreProducto = dr.ConvertTo <string>("sNombreProducto"), sOrdenConekta = dr.ConvertTo <string>("sOrdenConekta"), sOrigen = dr.ConvertTo <string>("sOrigen"), sSexoPaciente = dr.ConvertTo <string>("sSexoPaciente"), sTelefonoPaciente = dr.ConvertTo <string>("sTelefonoPaciente"), sTipoDoctor = dr.ConvertTo <string>("sTipoDoctor"), sTipoProducto = dr.ConvertTo <string>("sTipoProducto"), sTipoSangrePaciente = dr.ConvertTo <string>("sTipoSangrePaciente"), }; consulta.sFechaConsultaFin = consulta.dtFechaConsultaFin?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaConsultaInicio = consulta.dtFechaConsultaInicio?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaCreacion = consulta.dtFechaCreacion?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaNacimientoPaciente = consulta.dtFechaNacimientoPaciente?.ToString("dd/MM/yyyy"); consulta.sFechaProgramadaFin = consulta.dtFechaProgramadaFin?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaProgramadaInicio = consulta.dtFechaProgramadaInicio?.ToString("dd/MM/yyyy HH:mm"); consulta.sFechaVencimiento = consulta.dtFechaVencimiento?.ToString("dd/MM/yyyy HH:mm"); lstConsultas.Add(consulta); } response.Code = 0; response.Message = lstConsultas.Count == 0 ? "No se encontraron las consultas solicitadas." : "Se han obtenido los detalles de las consultas."; response.Result = lstConsultas; } catch (Exception ex) { response.Code = 67823458531612; response.Message = "Ocurrió un error inesperado al consultar el detalle de la consulta médica."; logger.Error(IMDSerialize.Serialize(67823458531612, $"Error en {metodo}(int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdEstatusConsulta = null, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null, DateTime? pdtFechaConsultaInicio = null, DateTime? pdtFechaConsultaFin = null): {ex.Message}", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin, ex, response)); } return(response); }
/// <summary> /// Obtiene el historial clínico del paciente /// </summary> /// <param name="piIdHistorialClinico"></param> /// <param name="piIdConsulta"></param> /// <param name="piIdPaciente"></param> /// <param name="piIdColaborador"></param> /// <param name="piIdFolio"></param> /// <param name="psIdTipoDoctor"></param> /// <returns></returns> public IMDResponse <List <EntHistorialClinico> > BGetHistorialMedico(int?piIdHistorialClinico = null, int?piIdConsulta = null, int?piIdPaciente = null, int?piIdColaborador = null, int?piIdFolio = null, string psIdTipoDoctor = null) { IMDResponse <List <EntHistorialClinico> > response = new IMDResponse <List <EntHistorialClinico> >(); string metodo = nameof(this.BGetHistorialMedico); logger.Info(IMDSerialize.Serialize(67823458524619, $"Inicia {metodo}(int? piIdHistorialClinico = null, int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdFolio = null)", piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio)); try { IMDResponse <DataTable> resGetHistorialClinico = datConsulta.DGetHistorialMedico(piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio, psIdTipoDoctor); if (resGetHistorialClinico.Code != 0) { return(resGetHistorialClinico.GetResponse <List <EntHistorialClinico> >()); } List <EntHistorialClinico> lstHistorial = new List <EntHistorialClinico>(); foreach (DataRow drHistorial in resGetHistorialClinico.Result.Rows) { IMDDataRow dr = new IMDDataRow(drHistorial); EntHistorialClinico entHistorialClinico = new EntHistorialClinico { dtFechaCreacion = dr.ConvertTo <DateTime?>("dtFechaCreacion"), dtFechaConsultaFin = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"), dtFechaConsultaInicio = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"), fAltura = dr.ConvertTo <double>("fAltura"), fPeso = dr.ConvertTo <double>("fPeso"), iIdConsulta = dr.ConvertTo <int>("iIdConsulta"), iIdHistorialClinico = dr.ConvertTo <int>("iIdHistorialClinico"), sAlergias = dr.ConvertTo <string>("sAlergias"), sComentarios = dr.ConvertTo <string>("sComentarios"), sDiagnostico = dr.ConvertTo <string>("sDiagnostico"), sFechaCreacion = string.Empty, sSintomas = dr.ConvertTo <string>("sSintomas"), sTratamiento = dr.ConvertTo <string>("sTratamiento"), }; entHistorialClinico.sFechaCreacion = entHistorialClinico.dtFechaCreacion?.ToString("ddd dd/MM/yyyy hh:mm tt"); entHistorialClinico.sFechaConsultaInicio = entHistorialClinico.dtFechaConsultaInicio?.ToString("ddd dd/MM/yyyy hh:mm tt"); entHistorialClinico.sFechaConsultaFin = entHistorialClinico.dtFechaConsultaFin?.ToString("ddd dd/MM/yyyy hh:mm tt"); //Calcular la duración de la consulta TimeSpan?dff = entHistorialClinico.dtFechaConsultaFin - entHistorialClinico.dtFechaConsultaInicio; entHistorialClinico.sDuracionConsulta = dff?.ToString(@"hh\:mm\:ss"); lstHistorial.Add(entHistorialClinico); } response.Code = 0; response.Message = "Se ha consultado el historial clínico."; response.Result = lstHistorial; } catch (Exception ex) { response.Code = 67823458525396; response.Message = "Ocurrió un error inesperado al consultar el historial clínico."; logger.Error(IMDSerialize.Serialize(67823458525396, $"Error en {metodo}(int? piIdHistorialClinico = null, int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdFolio = null): {ex.Message}", piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio, ex, response)); } return(response); }
/// <summary> /// Iniciar sesión en el portal administrativo/Callcenter /// </summary> /// <param name="sUsuario"></param> /// <param name="sPassword"></param> /// <returns></returns> public IMDResponse <EntUsuario> BLogin(string sUsuario, string sPassword) { IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>(); string metodo = nameof(this.BLogin); logger.Info(IMDSerialize.Serialize(67823458374658, $"Inicia {metodo}(string sUsuario, string sPassword)", sUsuario, sPassword)); try { sPassword = BEncodePassword(sPassword); IMDResponse <DataTable> dtUsuario = datUsuario.DLogin(sUsuario, sPassword); if (dtUsuario.Code != 0) { return(dtUsuario.GetResponse <EntUsuario>()); } if (dtUsuario.Result.Rows.Count != 1) { response.Code = 78772637586; response.Message = "Usuario o contraseña incorrecta."; return(response); } EntUsuario entUsuario = new EntUsuario(); foreach (DataRow item in dtUsuario.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); entUsuario.iIdUsuario = dr.ConvertTo <int>("iIdUsuario"); entUsuario.iIdTipoCuenta = dr.ConvertTo <int>("iIdTipoCuenta"); entUsuario.sTipoCuenta = dr.ConvertTo <string>("sTipoCuenta"); entUsuario.iIdPerfil = dr.ConvertTo <int>("iIdPerfil"); entUsuario.sPerfil = dr.ConvertTo <string>("sPerfil"); entUsuario.sUsuario = dr.ConvertTo <string>("sUsuario"); //entUsuario.sPassword = dr.ConvertTo<string>("sPassword"); entUsuario.sNombres = dr.ConvertTo <string>("sNombres"); entUsuario.sApellidoPaterno = dr.ConvertTo <string>("sApellidoPaterno"); entUsuario.sApellidoMaterno = dr.ConvertTo <string>("sApellidoMaterno"); entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime>("dtFechaNacimiento"); entUsuario.sTelefono = dr.ConvertTo <string>("sTelefono"); entUsuario.sCorreo = dr.ConvertTo <string>("sCorreo"); entUsuario.sDomicilio = dr.ConvertTo <string>("sDomicilio"); entUsuario.iIdUsuarioMod = dr.ConvertTo <int>("iIdUsuarioMod"); entUsuario.bActivo = dr.ConvertTo <bool>("bActivo"); entUsuario.bBaja = dr.ConvertTo <bool>("bBaja"); } response.Result = entUsuario; response.Message = "Inicio de sesión existoso."; } catch (Exception ex) { response.Code = 67823458375435; response.Message = "Ocurrió un error inesperado al iniciar sesión"; logger.Error(IMDSerialize.Serialize(67823458375435, $"Error en {metodo}(string sUsuario, string sPassword): {ex.Message}", sUsuario, sPassword, ex, response)); } return(response); }
/// <summary> /// Agrega/actualiza/elimina un usuario de la base /// </summary> /// <param name="entUsuario"></param> /// <param name="bEnviarCredenciales"></param> /// <returns></returns> public IMDResponse <EntUsuario> BSaveUsuario(EntUsuario entUsuario, bool bEnviarCredenciales = false) { IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>(); string metodo = nameof(this.BSaveUsuario); logger.Info(IMDSerialize.Serialize(67823458344355, $"Inicia {metodo}(EntUsuario entUsuario)", entUsuario)); try { if (entUsuario == null) { response.Code = 67823458345132; response.Message = "No se ingresó información del usuario."; return(response); } if (entUsuario.bActivo == true && entUsuario.bBaja == false) { //Validar datos y encriptar contraseña sólo si se trata de un guardado o actualización IMDResponse <bool> resValidaDatos = BValidaDatos(entUsuario); if (!resValidaDatos.Result) { return(resValidaDatos.GetResponse <EntUsuario>()); } if (!string.IsNullOrWhiteSpace(entUsuario.sPassword)) { entUsuario.sPassword = BEncodePassword(entUsuario.sPassword); } } IMDResponse <DataTable> resSaveUsuario = datUsuario.DSaveUsuario(entUsuario); if (resSaveUsuario.Code != 0) { return(resSaveUsuario.GetResponse <EntUsuario>()); } //Enviar credenciales por correo sólo si es un nuevo usuario, la contraseña ha sido actualizada, o se ha pasado de un estado SIN ACCESO a CON ACCESO if (bEnviarCredenciales && (entUsuario.iIdUsuario == 0 || !string.IsNullOrWhiteSpace(entUsuario.sPassword))) { List <string> users = new List <string> { entUsuario.sUsuario }; IMDResponse <bool> resEnviarCredenciales = this.BEnviarCredenciales(entUsuario.sCorreo, entUsuario.iIdUsuario == 0 ? EnumEmailActionPass.Crear : EnumEmailActionPass.Modificar, users); } IMDDataRow dr = new IMDDataRow(resSaveUsuario.Result.Rows[0]); entUsuario.iIdUsuario = dr.ConvertTo <int>("iIdUsuario"); response.Code = 0; response.Message = entUsuario.iIdUsuario == 0 ? "El usuario ha sido guardado correctamente." : !entUsuario.bActivo ? "El usuario ha sido eliminado correctamente." : "El usuario ha sido actualizado correctamente."; response.Result = entUsuario; } catch (Exception ex) { response.Code = 67823458345132; response.Message = "Ocurrió un error inesperado al guardar los datos del usuario."; logger.Error(IMDSerialize.Serialize(67823458345132, $"Error en {metodo}(EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response)); } return(response); }
/// <summary> /// Obtiene la lista de usuarios del sistema /// </summary> /// <param name="iIdUsuario"></param> /// <param name="iIdTipoCuenta"></param> /// <param name="iIdPerfil"></param> /// <param name="sUsuario"></param> /// <param name="sPassword"></param> /// <param name="bActivo"></param> /// <param name="bBaja"></param> /// <param name="psCorreo"></param> /// <returns></returns> public IMDResponse <List <EntUsuario> > BObtenerUsuario(int?iIdUsuario = null, int?iIdTipoCuenta = null, int?iIdPerfil = null, string sUsuario = null, string sPassword = null, bool?bActivo = null, bool?bBaja = null, string psCorreo = null) { IMDResponse <List <EntUsuario> > response = new IMDResponse <List <EntUsuario> >(); string metodo = nameof(this.BObtenerUsuario); logger.Info(IMDSerialize.Serialize(67823458362226, $"Inicia {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja)", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja)); try { //Consultar usuarios IMDResponse <DataTable> dtUsuario = datUsuario.DObtenerUsuario(iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, psCorreo); if (dtUsuario.Code != 0) { return(dtUsuario.GetResponse <List <EntUsuario> >()); } List <EntUsuario> lstUsuario = new List <EntUsuario>(); foreach (DataRow item in dtUsuario.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); EntUsuario entUsuario = new EntUsuario(); entUsuario.iIdUsuario = dr.ConvertTo <int>("iIdUsuario"); entUsuario.iIdTipoCuenta = dr.ConvertTo <int>("iIdTipoCuenta"); entUsuario.sTipoCuenta = dr.ConvertTo <string>("sTipoCuenta"); entUsuario.iIdPerfil = dr.ConvertTo <int>("iIdPerfil"); entUsuario.sPerfil = dr.ConvertTo <string>("sPerfil"); entUsuario.sUsuario = dr.ConvertTo <string>("sUsuario"); entUsuario.sPassword = dr.ConvertTo <string>("sPassword"); entUsuario.sNombres = dr.ConvertTo <string>("sNombres"); entUsuario.sApellidoPaterno = dr.ConvertTo <string>("sApellidoPaterno"); entUsuario.sApellidoMaterno = dr.ConvertTo <string>("sApellidoMaterno"); entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime?>("dtFechaNacimiento"); entUsuario.sFechaNacimiento = entUsuario.dtFechaNacimiento?.ToString("dd/MM/yyyy"); entUsuario.dtFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion"); entUsuario.sFechaCreacion = entUsuario.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm"); entUsuario.sTelefono = dr.ConvertTo <string>("sTelefono"); entUsuario.sCorreo = dr.ConvertTo <string>("sCorreo"); entUsuario.sDomicilio = dr.ConvertTo <string>("sDomicilio"); entUsuario.iIdUsuarioMod = dr.ConvertTo <int>("iIdUsuarioMod"); entUsuario.bAcceso = Convert.ToBoolean(dr.ConvertTo <int>("bAcceso")); entUsuario.bActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")); entUsuario.bBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")); lstUsuario.Add(entUsuario); } response.Message = "Los usuarios del sistema han sido obtenidos."; response.Result = lstUsuario; } catch (Exception ex) { response.Code = 67823458363003; response.Message = "Ocurrió un error inesperado al consultar los usuarios del sistema."; logger.Error(IMDSerialize.Serialize(67823458363003, $"Error en {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja): {ex.Message}", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, ex, response)); } return(response); }
/// <summary> /// Obtiene o filtra la lista de colaboradores /// </summary> /// <param name="piIdColaborador"></param> /// <param name="piIdTipoDoctor"></param> /// <param name="piIdEspecialidad"></param> /// <param name="piIdUsuarioCGU"></param> /// <returns></returns> public IMDResponse <List <EntColaborador> > BGetColaborador(int?piIdColaborador = null, int?piIdTipoDoctor = null, int?piIdEspecialidad = null, int?piIdUsuarioCGU = null) { IMDResponse <List <EntColaborador> > response = new IMDResponse <List <EntColaborador> >(); string metodo = nameof(this.BGetColaborador); logger.Info(IMDSerialize.Serialize(67823458474891, $"Inicia {metodo}(int? piIdColaborador = null, int? piIdTipoDoctor = null, int? piIdEspecialidad = null, int? piIdUsuarioCGU = null)", piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU)); try { IMDResponse <DataTable> resGetColaboradores = datColaborador.DGetColaborador(piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU); if (resGetColaboradores.Code != 0) { return(resGetColaboradores.GetResponse <List <EntColaborador> >()); } List <EntColaborador> lstColaboradores = new List <EntColaborador>(); foreach (DataRow drColaborador in resGetColaboradores.Result.Rows) { IMDDataRow dr = new IMDDataRow(drColaborador); EntColaborador colaborador = new EntColaborador { bActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")), bBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")), bAcceso = Convert.ToBoolean(dr.ConvertTo <int>("bAcceso")), bOcupado = Convert.ToBoolean(dr.ConvertTo <int>("bOcupado")), bOnline = Convert.ToBoolean(dr.ConvertTo <int>("bOnline")), dtFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion"), dtFechaNacimientoDoctor = dr.ConvertTo <DateTime>("dtFechaNacimientoDoctor"), iIdColaborador = dr.ConvertTo <int>("iIdColaborador"), iIdEspecialidad = dr.ConvertTo <int>("iIdEspecialidad"), iIdTipoCuenta = dr.ConvertTo <int>("iIdTipoCuenta"), iIdTipoDoctor = dr.ConvertTo <int>("iIdTipoDoctor"), iIdUsuarioCGU = dr.ConvertTo <int>("iIdUsuarioCGU"), iNumSala = dr.ConvertTo <int?>("iNumSala"), sApellidoMaternoDoctor = dr.ConvertTo <string>("sApellidoMaternoDoctor"), sApellidoPaternoDoctor = dr.ConvertTo <string>("sApellidoPaternoDoctor"), sCedulaProfecional = dr.ConvertTo <string>("sCedulaProfecional"), sCorreoDirectorio = dr.ConvertTo <string>("sCorreo"), sCorreoDoctor = dr.ConvertTo <string>("sCorreoDoctor"), sDireccionConsultorio = dr.ConvertTo <string>("sDireccionConsultorio"), sDomicilioDoctor = dr.ConvertTo <string>("sDomicilioDoctor"), sEspecialidad = dr.ConvertTo <string>("sEspecialidad"), sFechaCreacion = string.Empty, sFechaNacimientoDoctor = string.Empty, sMaps = dr.ConvertTo <string>("sMaps"), sNombreDirectorio = dr.ConvertTo <string>("sNombre"), sNombreConsultorio = dr.ConvertTo <string>("sNombreConsultorio"), sNombresDoctor = dr.ConvertTo <string>("sNombresDoctor"), sPasswordAdministrativo = dr.ConvertTo <string>("sPasswordAdministrativo"), sPasswordTitular = dr.ConvertTo <string>("sPasswordTitular"), sRFC = dr.ConvertTo <string>("sRFC"), sTelefonoDirectorio = dr.ConvertTo <string>("sTelefono"), sTelefonoDoctor = dr.ConvertTo <string>("sTelefonoDoctor"), sTipoCuenta = dr.ConvertTo <string>("sTipoCuenta"), sTipoDoctor = dr.ConvertTo <string>("sTipoDoctor"), sURL = dr.ConvertTo <string>("sURL"), sUsuarioAdministrativo = dr.ConvertTo <string>("sUsuarioAdministrativo"), sUsuarioTitular = dr.ConvertTo <string>("sUsuarioTitular"), sWhatsApp = dr.ConvertTo <string>("sWhatsApp"), }; colaborador.sFechaCreacion = colaborador.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm"); colaborador.sFechaNacimientoDoctor = colaborador.dtFechaNacimientoDoctor.ToString("dd/MM/yyyy"); colaborador.sAcceso = colaborador.bAcceso ? "SI" : "NO"; colaborador.bAdministrador = colaborador.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoAdministrativo; lstColaboradores.Add(colaborador); } response.Code = 0; response.Message = "Se han obtenido los colaboradores del sistema."; response.Result = lstColaboradores; } catch (Exception ex) { response.Code = 67823458475668; response.Message = "Ocurrió un error inesperado al consultar los colaboradores del sistema."; logger.Error(IMDSerialize.Serialize(67823458475668, $"Error en {metodo}(int? piIdColaborador = null, int? piIdTipoDoctor = null, int? piIdEspecialidad = null, int? piIdUsuarioCGU = null): {ex.Message}", piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU, ex, response)); } return(response); }
/// <summary> /// Obtiene y filtra el directorio de médicos especialistas /// </summary> /// <param name="piIdEspecialidad"></param> /// <param name="psBuscador"></param> /// <param name="piPage"></param> /// <param name="piPageSize"></param> /// <returns></returns> public IMDResponse <EntDirectorio> BGetDirectorio(int?piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0, bool?pbAcceso = null) { IMDResponse <EntDirectorio> response = new IMDResponse <EntDirectorio>(); string metodo = nameof(this.BGetDirectorio); logger.Info(IMDSerialize.Serialize(67823458504417, $"Inicia {metodo}(int? piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0)", piIdEspecialidad, psBuscador, piPage, piPageSize)); try { //Configurar el paginador de la consulta int piLimitInit = (piPage * piPageSize - piPageSize); int piLimitEnd = piPage * piPageSize - 1; IMDResponse <DataTable> resGetDirectorio = datColaborador.DGetDirectorio(piIdEspecialidad, psBuscador, piLimitInit, piLimitEnd, pbAcceso); if (resGetDirectorio.Code != 0) { return(resGetDirectorio.GetResponse <EntDirectorio>()); } EntDirectorio entDirectorio = new EntDirectorio(); foreach (DataRow drItem in resGetDirectorio.Result.Rows) { IMDDataRow dr = new IMDDataRow(drItem); int iIdColaborador = dr.ConvertTo <int>("iIdColaborador"); if (iIdColaborador != 0) { EntColaboradorDirectorio entColaborador = new EntColaboradorDirectorio { iIdColaborador = iIdColaborador, iIdEspecialidad = dr.ConvertTo <int>("iIdEspecialidad"), sCedulaProfecional = dr.ConvertTo <string>("sCedulaProfecional"), sCorreo = dr.ConvertTo <string>("sCorreo"), sDireccionConsultorio = dr.ConvertTo <string>("sDireccionConsultorio"), sEspecialidad = dr.ConvertTo <string>("sEspecialidad"), sFoto = string.Empty, sMaps = dr.ConvertTo <string>("sMaps"), sNombre = dr.ConvertTo <string>("sNombre"), sNombreConsultorio = dr.ConvertTo <string>("sNombreConsultorio"), sRFC = dr.ConvertTo <string>("sRFC"), sTelefono = dr.ConvertTo <string>("sTelefono"), sWhatsApp = dr.ConvertTo <string>("sWhatsApp"), sURL = dr.ConvertTo <string>("sURL"), }; //Reemplazar valores nulos/vacíos por la leyenda Sin información string sinInformacion = ConfigurationManager.AppSettings["sLeyendaSinInformacion"]; entColaborador.sCedulaProfecional = string.IsNullOrEmpty(entColaborador.sCedulaProfecional) ? sinInformacion : entColaborador.sCedulaProfecional; entColaborador.sCorreo = string.IsNullOrEmpty(entColaborador.sCorreo) ? sinInformacion : entColaborador.sCorreo; entColaborador.sDireccionConsultorio = string.IsNullOrEmpty(entColaborador.sDireccionConsultorio) ? sinInformacion : entColaborador.sDireccionConsultorio; entColaborador.sEspecialidad = string.IsNullOrEmpty(entColaborador.sEspecialidad) ? sinInformacion : entColaborador.sEspecialidad; entColaborador.sNombre = string.IsNullOrEmpty(entColaborador.sNombre) ? sinInformacion : entColaborador.sNombre; entColaborador.sNombreConsultorio = string.IsNullOrEmpty(entColaborador.sNombreConsultorio) ? sinInformacion : entColaborador.sNombreConsultorio; entColaborador.sRFC = string.IsNullOrEmpty(entColaborador.sRFC) ? sinInformacion : entColaborador.sRFC; entColaborador.sTelefono = string.IsNullOrEmpty(entColaborador.sTelefono) ? sinInformacion : entColaborador.sTelefono; entColaborador.sURL = string.IsNullOrEmpty(entColaborador.sURL) ? sinInformacion : entColaborador.sURL; entColaborador.sWhatsApp = string.IsNullOrEmpty(entColaborador.sWhatsApp) ? sinInformacion : entColaborador.sWhatsApp; try { byte[] foto = drItem["sFoto"] is DBNull ? new byte[0] : (byte[])drItem["sFoto"]; string sFoto = Convert.ToBase64String(foto); if (string.IsNullOrWhiteSpace(sFoto)) { sFoto = string.Empty; } entColaborador.sFoto = sFoto; } catch (Exception) { } entDirectorio.lstColaboradores.Add(entColaborador); } } //Calcular el total de páginas existentes int iCount = 0; if (resGetDirectorio.Result.Rows.Count > 0) { iCount = Convert.ToInt32(resGetDirectorio.Result.Rows[0]["iCount"].ToString()); } entDirectorio.iTotalPaginas = (int)Math.Ceiling(iCount / (double)piPageSize); response.Code = 0; response.Message = "El directorio médico ha sido obtenido."; response.Result = entDirectorio; } catch (Exception ex) { response.Code = 67823458505194; response.Message = "Ocurrió un error inesperado al consultar el directorio médico."; logger.Error(IMDSerialize.Serialize(67823458505194, $"Error en {metodo}(int? piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0): {ex.Message}", piIdEspecialidad, psBuscador, piPage, piPageSize, ex, response)); } return(response); }
public IMDResponse <List <EntProducto> > BObtenerProductos(int?iIdProducto) { IMDResponse <List <EntProducto> > response = new IMDResponse <List <EntProducto> >(); string metodo = nameof(this.BObtenerProductos); logger.Info(IMDSerialize.Serialize(67823458396414, $"Inicia {metodo}(int? iIdProducto)", iIdProducto)); try { List <EntProducto> lstProductos = new List <EntProducto>(); IMDResponse <DataTable> dtProductos = datProducto.DObterProductos(iIdProducto); if (dtProductos.Code != 0) { response = dtProductos.GetResponse <List <EntProducto> >(); return(response); } if (dtProductos.Result.Rows.Count == 0) { response = dtProductos.GetResponse <List <EntProducto> >(); response.Code = 67823458396414; response.Message = "No se encontraron productos en el sistema."; return(response); } foreach (DataRow item in dtProductos.Result.Rows) { IMDDataRow dr = new IMDDataRow(item); EntProducto producto = new EntProducto { iIdProducto = dr.ConvertTo <int>("iIdProducto"), iIdTipoProducto = dr.ConvertTo <int>("iIdTipoProducto"), iIdGrupoProducto = dr.ConvertTo <int>("iIdGrupoProducto"), sTipoProducto = dr.ConvertTo <string>("sTipoProducto"), sGrupoProducto = dr.ConvertTo <string>("sGrupoProducto"), sNombre = dr.ConvertTo <string>("sNombre"), sNombreCorto = dr.ConvertTo <string>("sNombreCorto"), sDescripcion = dr.ConvertTo <string>("sDescripcion"), fCosto = dr.ConvertTo <double>("fCosto"), iMesVigencia = dr.ConvertTo <int>("iMesVigencia"), sIcon = dr.ConvertTo <string>("sIcon"), sPrefijoFolio = dr.ConvertTo <string>("sPrefijoFolio"), bComercial = Convert.ToBoolean(dr.ConvertTo <int>("bComercial")), bActivo = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")), bBaja = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")) }; producto.sComercial = producto.bComercial ? "Si" : "No"; producto.sCosto = producto.fCosto.ToString("C"); lstProductos.Add(producto); } response.Code = 0; response.Result = lstProductos; response.Message = "La lista de productos ha sido obtenida."; } catch (Exception ex) { response.Code = 67823458397191; response.Message = "Ocurrió un error inesperado"; logger.Error(IMDSerialize.Serialize(67823458397191, $"Error en {metodo}(int? iIdProducto): {ex.Message}", iIdProducto, ex, response)); } return(response); }