Exemple #1
0
 public void ExcluirConsulta(CONSULTA c)
 {
     context.CONSULTAs.Attach(c);
     context.Entry(c).State = System.Data.Entity.EntityState.Deleted;
     context.CONSULTAs.Remove(c);
     context.SaveChanges();
 }
Exemple #2
0
 public void AtualizarConsulta(CONSULTA c)
 {
     context.CONSULTAs.Attach(c);
     context.Entry(c).State = System.Data.Entity.EntityState.Modified;
     context.CONSULTAs.Add(c);
     context.SaveChanges();
 }
Exemple #3
0
 internal static IEnumerable <long> EstahLah(List <long> cpfs)
 {
     using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["IntegracaoParceiro"].ToString()))
     {
         return(connection.Query <long>(
                    CONSULTA.Replace("#CPFS#", string.Join(",", cpfs))));
     }
 }
        public RegistrarConsulta(CONSULTA consul, int idcu, bool save)
        {
            var paci = BaseDatos.GetBaseDatos().PACIENTES.Find(consul.PACIENTEID);

            InitializeComponent();
            LlenarAucompletes();

            checkBoxConsulta.IsEnabled = false;
            idmed   = Convert.ToInt32(consul.MEDICOID);
            idpacie = Convert.ToInt32(consul.PACIENTEID);
            idcuen  = idcu;

            idconsul = consul.ID_CONSULTA;
            fechaconsulta.SelectedDate = consul.FECHA_CREACION;
            autoMedico.SearchText      = consul.Medico.PERSONA.NOMBRE + " " + consul.Medico.PERSONA.A_PATERNO + " " + consul.Medico.PERSONA.A_MATERNO;
            txtCedula.Text             = consul.Medico.C_PROFESIONAL;
            autoPacienteC.SearchText   = paci.PERSONA.NOMBRE + " " + paci.PERSONA.A_PATERNO + " " + paci.PERSONA.A_MATERNO;
            txtPeso.Text          = consul.PESO.ToString();
            txtPresion.Text       = consul.P_ARTERIAL.ToString();
            txtTemperatura.Text   = consul.TEMPERATURA.ToString();
            txtglucosa.Text       = consul.GLUCOSA.ToString();
            txtAlergias.Text      = consul.ALERGIAS;
            txtdiagnostico.Text   = consul.DIAGNOSTICO;
            txtdescripcion.Text   = consul.DESCRIPCION;
            txtmedicamento.Text   = consul.MEDICAMENTOS;
            txtcostoconsulta.Text = consul.COSTO.ToString();

            fechaconsulta.IsEnabled         = false;
            btnnGuardar.Visibility          = Visibility.Hidden;
            btnEditar.Visibility            = Visibility.Visible;
            btnRegistrarPaciente.Visibility = Visibility.Hidden;
            autoMedico.IsEnabled            = false;
            autoPacienteC.IsEnabled         = false;
            txtPacienteAmbu.IsEnabled       = false;
            txtPacienteAmbu.Visibility      = Visibility.Hidden;
            autoPacienteC.Visibility        = Visibility.Visible;
            txtCedula.IsEnabled             = false;
        }
        //[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
        public string getDatosSuper(string sXml)
        {
            string           sRes = "", sPaso = "Inicio\r\n";
            string           sNomPar = "", sValPar = "";
            string           t145_idusuario = "", t145_clave = "", t314_password = "", t742_clavews = "";
            int              t314_idusuario = -1;
            bool             buser = false, bclave = false, bidUser = false, bpassw = false, bcons = false, bConsultaRealizada = false;
            StringBuilder    sb             = new StringBuilder();
            List <PARAMETRO> aListParamXML  = new List <PARAMETRO>();
            List <PARAMETRO> aListParamProc = new List <PARAMETRO>();

            try
            {
                #region Leo el XML de entrada para obtener los parámetros de la consulta
                //ArrayList aListParam = new ArrayList();
                System.Xml.XmlDocument doc = new XmlDocument();
                doc.LoadXml(sXml);
                XmlNode     oXML2  = doc.FirstChild;
                XmlNodeList lNodos = oXML2.ChildNodes;
                //sPaso += "Despues de inicializar parámetros. ";
                foreach (XmlNode oNodo in lNodos)
                {
                    //sPaso += "oNodo.Name=" + oNodo.Name + " ";
                    switch (oNodo.Name)
                    {
                    case "user":    //Código de usuario del servicio web
                        buser          = true;
                        t145_idusuario = oNodo.InnerText.Trim();
                        //sPaso += "t145_idusuario=" + t145_idusuario;
                        break;

                    case "clave":    //clave de usuario del servicio web
                        bclave     = true;
                        t145_clave = oNodo.InnerText.Trim();
                        break;

                    case "idUser":    //Usuario que pide la consulta
                        bidUser        = true;
                        t314_idusuario = Utilidades.getEntero("idUser", oNodo.InnerText);
                        break;

                    case "passw":    //clave de usuario SUPER para acceso al servicio web
                        bpassw        = true;
                        t314_password = oNodo.InnerText.Trim();
                        break;

                    case "cons":    //clave que identifica la consulta personalizada
                        bcons        = true;
                        t742_clavews = oNodo.InnerText.Trim();
                        break;

                    case "params":    //Recorro la lista de parámetros
                        int iNumParam = oNodo.ChildNodes.Count;
                        foreach (XmlNode oParams in oNodo.ChildNodes)
                        {
                            sNomPar = "";
                            sValPar = "";
                            //sPaso += "oParams.Name=" + oParams.Name + " ";
                            foreach (XmlNode oPar in oParams.ChildNodes)
                            {
                                //sPaso += "oPar.Name=" + oPar.Name + " ";
                                switch (oPar.Name)
                                {
                                case "nombre":
                                    //sPaso += "oParXML.t474_textoparametro=" + oPar.InnerText.Trim() + " ";
                                    sNomPar = oPar.InnerText.Trim();
                                    break;

                                case "valor":
                                    //sPaso += "oParXML.valor=" + oPar.InnerText.Trim() + " ";
                                    sValPar = oPar.InnerText.Trim();
                                    break;
                                }
                            }
                            if (sNomPar != "" && sValPar != "")
                            {
                                //sPaso += "Creo una instancia del objeto PARAMETRO";
                                PARAMETRO oParXML = new PARAMETRO(sNomPar, sValPar);
                                //sPaso += "Añado el parametro a la lista de parametros aListParamXML";
                                aListParamXML.Add(oParXML);
                                //sPaso += "Despues de añadir el parametro a la lista de parametros aListParamXML";
                            }
                        }
                        break;
                    }
                }
                #endregion
                //sPaso += "Despues de leer el XML de entrada.\r\n";
                #region Valido los parámetros de entrada
                #region Comprobar la existencia de parámetros de entrada
                if (!buser)
                {
                    sRes = @"<Datos><Error>-1</Error><Message>Falta el parámetro código de usuario del servicio web</Message></Datos>";
                }
                if (sRes == "")
                {
                    if (!bclave)
                    {
                        sRes = @"<Datos><Error>-1</Error><Message>Falta el parámetro código de clave del servicio web</Message></Datos>";
                    }
                }
                if (sRes == "")
                {
                    if (!bidUser)
                    {
                        sRes = @"<Datos><Error>-1</Error><Message>Falta el parámetro código de usuario de SUPER</Message></Datos>";
                    }
                }
                if (sRes == "")
                {
                    if (!bpassw)
                    {
                        sRes = @"<Datos><Error>-1</Error><Message>Falta el parámetro contraseña de usuario para acceso a servicios web de SUPER</Message></Datos>";
                    }
                }
                if (sRes == "")
                {
                    if (!bcons)
                    {
                        sRes = @"<Datos><Error>-1</Error><Message>Falta el parámetro código de consulta SUPER</Message></Datos>";
                    }
                }
                #endregion
                //sPaso += "Despues de comprobar la existencia de parametros de entrada.\r\n";
                #region Comprobar que los valores de los parámetros del XML son válidos
                CONSUMIDOR oCons = new CONSUMIDOR();
                //sPaso += "Despues de crear instancia de CONSUMIDOR.\r\n";
                if (sRes == "")
                {
                    if (t145_idusuario == "")
                    {
                        sRes = @"<Datos><Error>-2</Error><Message>Debe indicar código de usuario del servicio web</Message></Datos>";
                    }
                    else
                    {
                        //sPaso += "Antes de asignar valores a la instancia de CONSUMIDOR. t145_idusuario=" + t145_idusuario + "\r\n";
                        oCons = CONSUMIDOR.GetDatos(null, t145_idusuario);
                        if (oCons.t145_idusuario == "-1")
                        {
                            sRes = @"<Datos><Error>-1</Error><Message>Error al obtener los datos del Consumidor" + t145_idusuario + "\r\n" + oCons.t145_clave + "</Message></Datos>";
                        }
                        //sPaso += "Despues de asignar valores a la instancia de CONSUMIDOR.\r\n";
                        if (sRes == "")
                        {
                            if (oCons.t145_intentos > 10)
                            {
                                sRes = @"<Datos><Error>-3</Error><Message>El usuario de servicio web ha sobrepasado el nº de intentos de acceso erróneos</Message></Datos>";
                            }
                        }
                        if (sRes == "")
                        {
                            if (oCons.t145_idusuario != "")
                            {
                                if (DateTime.Now < oCons.t145_fiv || DateTime.Now > oCons.t145_ffv.AddDays(1))
                                {
                                    sRes = @"<Datos><Error>-5</Error><Message>Usuario de servicio web " + oCons.t145_idusuario +
                                           @" FIV: " + oCons.t145_fiv.ToString() + @"FFV: " + oCons.t145_ffv.AddDays(1).ToString() +
                                           @" fuera de vigencia</Message></Datos>";
                                }
                            }
                            else
                            {
                                sRes = @"<Datos><Error>-4</Error><Message>Usuario de servicio web no válido</Message></Datos>";
                            }
                        }
                    }
                }
                if (sRes == "")
                {
                    if (t145_clave == "")
                    {
                        sRes = @"<Datos><Error>-2</Error><Message>Debe indicar clave de usuario del servicio web</Message></Datos>";
                    }
                    else
                    {
                        if (t145_clave != oCons.t145_clave)
                        {
                            sRes = @"<Datos><Error>-6</Error><Message>Clave de usuario del servicio web no válida</Message></Datos>";
                        }
                    }
                }
                USUARIO oUser = new USUARIO();
                //sPaso += "Despues de crear instancia de USUARIO.\r\n";
                if (sRes == "")
                {
                    if (t314_idusuario == -1)
                    {
                        sRes = @"<Datos><Error>-2</Error><Message>Debe indicar código de usuario de SUPER</Message></Datos>";
                    }
                    else
                    {
                        oUser = USUARIO.GetDatos(null, t314_idusuario);
                        if (oUser.t314_idusuario != -1)
                        {
                            if (DateTime.Now < oUser.t314_falta)
                            {
                                sRes = @"<Datos><Error>-9</Error><Message>Usuario SUPER no activo. Fecha de alta: " + oUser.t314_falta.ToString() + "</Message></Datos>";
                            }
                            if (sRes == "" && oUser.t314_fbaja != null)
                            {
                                DateTime dtAux = (DateTime)oUser.t314_fbaja;
                                dtAux = dtAux.AddDays(1);
                                if (DateTime.Now > dtAux)
                                {
                                    sRes = @"<Datos><Error>-9</Error><Message>Usuario SUPER no activo. Fecha de baja: " + dtAux.ToString() + "</Message></Datos>";
                                }
                            }
                        }
                        else
                        {
                            sRes = @"<Datos><Error>-8</Error><Message>Usuario SUPER no válido</Message></Datos>";
                        }
                    }
                }
                if (sRes == "")
                {
                    if (DateTime.Now < oUser.t001_fecalta)
                    {
                        sRes = @"<Datos><Error>-10</Error><Message>Profesional FICEPI no activo</Message></Datos>";
                    }
                    if (sRes == "" && oUser.t001_fecbaja != null)
                    {
                        DateTime dtAux = (DateTime)oUser.t001_fecbaja;
                        dtAux = dtAux.AddDays(1);
                        if (DateTime.Now > dtAux)
                        {
                            sRes = @"<Datos><Error>-10</Error><Message>Profesional FICEPI no activo. Fecha de baja: " + dtAux.ToString() + "</Message></Datos>";
                        }
                    }
                }
                if (sRes == "")
                {
                    if (t314_password == "")
                    {
                        sRes = @"<Datos><Error>-2</Error><Message>Debe indicar contraseña del usuario SUPER</Message></Datos>";
                    }
                    else
                    {
                        if (t314_password != oUser.t314_password)
                        {
                            sRes = @"<Datos><Error>-11</Error><Message>Contraseña del usuario SUPER no válida</Message></Datos>";
                        }
                    }
                }
                CONSULTA oConsulta = new CONSULTA();
                //sPaso += "Despues de crear instancia de CONSULTA.\r\n";
                if (sRes == "")
                {
                    if (t742_clavews == "")
                    {
                        sRes = @"<Datos><Error>-2</Error><Message>Debe indicar la consulta a realizar</Message></Datos>";
                    }
                    else
                    {
                        oConsulta = CONSULTA.GetDatos(null, t742_clavews, t314_idusuario);
                        if (oConsulta.t472_idconsulta == -1)
                        {
                            sRes = @"<Datos><Error>-12</Error><Message>Consulta no válida. t742_clavews=" + t742_clavews +
                                   " t314_idusuario=" + t314_idusuario + " Traza: " + oConsulta.t472_procalm + "</Message></Datos>";
                        }
                        else
                        {
                            if (!oConsulta.t472_estado)
                            {
                                sRes = @"<Datos><Error>-13</Error><Message>Consulta no activa</Message></Datos>";
                            }
                        }
                    }
                }
                if (sRes == "")
                {
                    if (oConsulta.t314_idusuario == -1)
                    {
                        sRes = @"<Datos><Error>-14</Error><Message>Consulta no accesible</Message></Datos>";
                    }
                    else
                    {
                        if (!oConsulta.t473_estado)
                        {
                            sRes = @"<Datos><Error>-15</Error><Message>Consulta no vigente</Message></Datos>";
                        }
                    }
                }
                #endregion
                //sPaso += "Despues de comprobar que los valores de los parametros del XML son validos.\r\n";
                #region Comprobar parametros del procedimiento almacenado y asignales valores
                if (sRes == "")
                {
                    aListParamProc = PARAMETRO.GetParametros(null, oConsulta.t472_idconsulta);
                    foreach (PARAMETRO oParam in aListParamProc)
                    {
                        if (sRes == "")
                        {
                            //Compruebo que para cada uno de los parámetros obligatorios de la consulta se ha pasado el parámetro en el XML
                            PARAMETRO oParXML = PARAMETRO.BuscarParametro(aListParamXML, oParam.t474_textoparametro);
                            if (oParXML == null)
                            {
                                if (!oParam.t474_opcional)
                                {
                                    sRes = @"<Datos><Error>-16</Error><Message>Faltan parámetros para la consulta</Message></Datos>";
                                }
                            }
                            else
                            {
                                //Solo recogeré el valor del parametro que viene en el XML si el valor del parametro en el proc.alm.
                                //es modificable por el usuario
                                if (oParam.t474_visible == "M")
                                {
                                    #region Compruebo que el valor pasado es del tipo adecuado
                                    switch (oParam.t474_tipoparametro)
                                    {//I->Entero; V->Varchar; M->Money; D->Date; B-> Booleano; A->Añomes
                                    case "I":
                                        if (!Utilidades.isInteger(oParXML.valor))
                                        {
                                            sRes = @"<Datos><Error>-17</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es un entero correcto</Message></Datos>";
                                        }
                                        break;

                                    case "M":
                                        if (!Utilidades.isNumeric(oParXML.valor))
                                        {
                                            sRes = @"<Datos><Error>-17</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es un double correcto</Message></Datos>";
                                        }
                                        break;

                                    case "A":
                                        if (!Utilidades.isAnoMes(oParXML.valor))
                                        {
                                            sRes = @"<Datos><Error>-17</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es un AñoMes correcto</Message></Datos>";
                                        }
                                        break;

                                    case "D":
                                        if (!Utilidades.isDate(oParXML.valor))
                                        {
                                            sRes = @"<Datos><Error>-17</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es una fecha correcta</Message></Datos>";
                                        }
                                        break;

                                    case "B":
                                        if (oParXML.valor != "0" && oParXML.valor != "1")
                                        {
                                            sRes = @"<Datos><Error>-17</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es un booleano correcto</Message></Datos>";
                                        }
                                        break;
                                    }
                                    #endregion
                                    if (sRes == "")
                                    {//Asigno el valor del parametro del proc.alm. con el valor que viene en el XML
                                        oParam.valor = oParXML.valor;
                                    }
                                }
                                else
                                {//El usuario está pasando un parámetro para el que no puede indicar valor
                                    sRes = @"<Datos><Error>-18</Error><Message>El valor del parámetro " + oParam.t474_textoparametro + " no es modificable</Message></Datos>";
                                }
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                #endregion
                //sPaso += "Despues de comprobar los parametros del procedimiento almacenado.\r\n";
                #endregion
                #region Obtengo los datos
                if (sRes == "")
                {
                    //sPaso += "Antes de ejecutarConsultaDS\r\n\tt314_idusuario=" + t314_idusuario.ToString() +
                    //            "\toConsulta.t472_procalm=" + oConsulta.t472_procalm ;
                    sb.Append(@"<Datos><Error>0</Error>");
                    try
                    {
                        sb.Append(CONSULTA.ejecutarConsultaDS(t314_idusuario, oConsulta.t472_procalm, aListParamProc));
                        sb.Append(@"</Datos>");
                        sRes = sb.ToString();
                        bConsultaRealizada = true;
                    }
                    catch (Exception e)
                    {
                        //sRes = @"<Datos><Paso>" + sPaso + "</Paso><Error>-20</Error><Message>" + e.Message.ToString() + "</Message></Datos>";
                        sRes = @"<Datos><Error>-20</Error><Message>" + e.Message.ToString() + "</Message></Datos>";
                    }
                }
                #endregion
                #region Actualizar contador de intentos
                if (bConsultaRealizada)//Si el acceso a sido correcto pongo a cero el contador de accesos erróneos
                {
                    CONSUMIDOR.SetIntentos(null, oCons.t145_idusuario, (short)0);
                }
                else
                {
                    oCons.t145_intentos++;
                    CONSUMIDOR.SetIntentos(null, oCons.t145_idusuario, oCons.t145_intentos);
                }
                #endregion
            }
            catch (Exception e1)
            {
                //sRes = @"<Datos><Paso>" + sPaso + "</Paso><Error>-1</Error><Message>" + e1.Message.ToString() + "</Message></Datos>";
                sRes = @"<Datos><Error>-1</Error><Message>" + e1.Message.ToString() + "</Message></Datos>";
            }
            return(Utilidades.cabXml() + sRes);
        }
Exemple #6
0
 public void AgendarConsulta(CONSULTA c)
 {
     context.CONSULTAs.Add(c);
     context.SaveChanges();
 }
        void Guardar()
        {
            if (checkBoxConsulta.IsChecked == true)
            {
                autoPacienteC.Visibility        = Visibility.Hidden;
                btnRegistrarPaciente.Visibility = Visibility.Hidden;

                if (autoMedico.SelectedItem == null)
                {
                    MessageBox.Show("Selecciona un Médico");
                }
                else
                {
                    if (txtPacienteAmbu.Text == "")
                    {
                        MessageBox.Show("Ingresa el nombre del Paciente");
                    }
                    else
                    {
                        if (txtdiagnostico.Text == "")
                        {
                            MessageBox.Show("Selecciona un Diagnóstico");
                        }
                        else
                        {
                            if (txtdescripcion.Text == "")
                            {
                                MessageBox.Show("Inserta una Descripción");
                            }
                            else
                            {
                                if (txtmedicamento.Text == "")
                                {
                                    MessageBox.Show("Inserta un Médicamento");
                                }
                                else
                                {
                                    if (txtcostoconsulta.Text == "")
                                    {
                                        MessageBox.Show("Inserta el Costo de la Consulta");
                                    }
                                    else
                                    {
                                        dynamic medico = autoMedico.SelectedItem;
                                        int     idmed  = medico.ID_MEDICO;

                                        CONSULTA con = new CONSULTA
                                        {
                                            MEDICOID       = idmed,
                                            NOM_PACIENTE   = txtPacienteAmbu.Text,
                                            DIAGNOSTICO    = txtdiagnostico.Text,
                                            DESCRIPCION    = txtdescripcion.Text,
                                            MEDICAMENTOS   = txtmedicamento.Text,
                                            ALERGIAS       = txtAlergias.Text,
                                            PESO           = Convert.ToDecimal(txtPeso.Text),
                                            GLUCOSA        = Convert.ToDecimal(txtglucosa.Text),
                                            TEMPERATURA    = Convert.ToDecimal(txtTemperatura.Text),
                                            P_ARTERIAL     = Convert.ToDecimal(txtPresion.Text),
                                            COSTO          = Decimal.Parse(txtcostoconsulta.Text),
                                            USUARIOID      = idUsuario,
                                            FECHA_CREACION = fr,
                                        };
                                        BaseDatos.GetBaseDatos().CONSULTAS.Add(con);
                                        BaseDatos.GetBaseDatos().SaveChanges();

                                        limpiar();
                                        this.Close();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (checkBoxConsulta.IsChecked == false)
                {
                    txtPacienteAmbu.Visibility      = Visibility.Visible;
                    btnRegistrarPaciente.Visibility = Visibility.Visible;
                }
                if (autoPacienteC.SelectedItem == null)
                {
                    MessageBox.Show("Selecciona un Paciente");
                }
                else
                {
                    if (autoMedico.SelectedItem == null)
                    {
                        MessageBox.Show("Selecciona un Médico");
                    }
                    else
                    {
                        if (txtdiagnostico.Text == "")
                        {
                            MessageBox.Show("Selecciona un Diagnóstico");
                        }
                        else
                        {
                            if (txtdescripcion.Text == "")
                            {
                                MessageBox.Show("Inserta una Descripción");
                            }
                            else
                            {
                                if (txtmedicamento.Text == "")
                                {
                                    MessageBox.Show("Inserta un Medicamento");
                                }
                                else
                                {
                                    if (txtcostoconsulta.Text == "")
                                    {
                                        MessageBox.Show("Inserta el costo de la Consulta");
                                    }
                                    else
                                    {
                                        dynamic paciente = autoPacienteC.SelectedItem;
                                        dynamic medico   = autoMedico.SelectedItem;

                                        int idmed = medico.ID_MEDICO;
                                        int idpac = paciente.ID_PACIENTE;


                                        CONSULTA con = new CONSULTA
                                        {
                                            MEDICOID       = idmed,
                                            PACIENTEID     = idpac,
                                            DIAGNOSTICO    = txtdiagnostico.Text,
                                            DESCRIPCION    = txtdescripcion.Text,
                                            MEDICAMENTOS   = txtmedicamento.Text,
                                            ALERGIAS       = txtAlergias.Text,
                                            PESO           = Convert.ToDecimal(txtPeso.Text),
                                            GLUCOSA        = Convert.ToDecimal(txtglucosa.Text),
                                            TEMPERATURA    = Convert.ToDecimal(txtTemperatura.Text),
                                            P_ARTERIAL     = Convert.ToDecimal(txtPresion.Text),
                                            USUARIOID      = 2,
                                            COSTO          = Decimal.Parse(txtcostoconsulta.Text),
                                            FECHA_CREACION = fr,
                                        };
                                        BaseDatos.GetBaseDatos().CONSULTAS.Add(con);
                                        BaseDatos.GetBaseDatos().SaveChanges();

                                        int idcuent = paciente.ID_CUENTA;
                                        var cuenta  = BaseDatos.GetBaseDatos().CUENTAS.Find(idcuent);

                                        cuenta.TOTAL = cuenta.TOTAL + Decimal.Parse(txtcostoconsulta.Text);
                                        cuenta.SALDO = cuenta.SALDO + Decimal.Parse(txtcostoconsulta.Text);
                                        BaseDatos.GetBaseDatos().SaveChanges();
                                        limpiartodo();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }