Ejemplo n.º 1
0
        public AnulacionOS Anular(Anular model)
        {
            var anulacionOs = new AnulacionOS();

            try
            {
                var authRepo      = new AutorizacionRepository();
                var sIdInternoAut = authRepo.GetIdAuth(model.AuthId);

                var output = "MSH|^~\\&|TRIA0100M|TRIA00000003|SANCOR_SALUD|SANCOR_SALUD^604940^IIN|";
                output += DateTime.Now.ToString("yyyyMMddHHmmss") + "||ZQA^Z04^ZQA_Z04|18071613545151234567890|P|2.4|||NE|AL|ARG";
                output += Environment.NewLine;
                output += "ZAU||" + sIdInternoAut;
                output += Environment.NewLine;
                output += "PRD|PS^CIRCULO MEDICO DE SALTA||^^^C||||96065^PR|";


                output += Environment.NewLine;
                output += "PID|||" + model.Credencial + "^^^SANCOR_SALUD^HC^SANCOR_SALUD||UNKNOWN";

                Sancor.MessageResponse resultado = _sancor.MessageAsync(8, output).Result;
                logResult(output.ToString(), resultado.ToString(), "D");

                if (resultado.resultado.Substring(0, 4) == "MSH|")
                {
                    return(SetAnulacionOs(resultado.ToString(), model));
                }
                anulacionOs.SetError(GetType().Name, 0, resultado.resultado.ToString(), string.Empty, model, string.Empty);
            }
            catch (Exception ex)
            {
                anulacionOs.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", model, string.Empty);
            }
            return(anulacionOs);
        }
Ejemplo n.º 2
0
        public Afiliado Elegibilidad(string credencial)
        {
            credencial = "0841233/00";

            string cadena;
            string plan;
            var    afiliado = new Afiliado();

            try
            {
                var cred = credencial.Split('/');
                if (cred.Length > 1)
                {
                    var output = @"MSH|^~\{|TRIT0100M|TRIT00999999|SANCOR_SALUD|SANCOR_SALUD^604940^IIN|";
                    output += DateTime.Now.ToString("yyyyMMddHHmmss") + "||ZQ^Z01^ZQI_Z01|05091908480623465897|P|2.4|||NE|AL|ARG";
                    output += Environment.NewLine;
                    output += "PRD|PS^CIRCULO MEDICO DE SALTA||^^^C||||22^CU|";
                    output += Environment.NewLine;
                    output += "PID|||" + cred[0] + "^" + cred[1] + "^^SANCOR_SALUD^HC||UNKNOWN";
                    output += Environment.NewLine;

                    Sancor.MessageResponse resultado = _sancor.MessageAsync(8, output).Result;

                    logResult(output.ToString(), resultado.ToString(), "E");

                    if (resultado.resultado.ToString() == "")
                    {
                        return new Afiliado {
                                   Name = Mensajes.Get("AfiIne")
                        }
                    }
                    ;
                    if (resultado.resultado.ToString().Contains("Error ejecutando") || resultado.resultado.ToString().Contains("no se pueden procesar") || resultado.resultado.ToString().Contains("Unable to read data"))
                    {
                        return(new Afiliado {
                            Name = Mensajes.Get("ServidorNoResponde"), HasError = true
                        });
                    }
                    // convertimos respuesta en vector
                    var msHL7 = HL7.DecifraHL7Sancor(resultado.resultado.ToString());
                    var index = msHL7[1].IndexOf("En estos momentos, no se pueden procesar transacciones");
                    if (index > 0)
                    {
                        afiliado.Name = Mensajes.Get("ServidorNoResponde");
                        afiliado.SetError(GetType().Name, 37, Mensajes.Get("ServidorNoResponde"), string.Empty, credencial, string.Empty);
                    }
                    else
                    {
                        if (msHL7[4] != null && msHL7[5] != null)
                        {
                            if (HL7.CampoHL7(msHL7[4], 5, 1) != "UNKNOWN")
                            {
                                cadena = HL7.CampoHL7(msHL7[4], 5, 1) + ", " + HL7.CampoHL7(msHL7[4], 5, 2);
                                plan   = HL7.CampoHL7(msHL7[5], 3, 0);
                            }
                            else
                            {
                                cadena = Mensajes.Get("AfiIne");
                                plan   = "";
                            }
                        }
                        else
                        {
                            cadena = Mensajes.Get("AfiIne");;
                            plan   = "";
                        }
                        afiliado.Name = cadena;
                        afiliado.Plan = plan;
                    }
                }
                else
                {
                    afiliado.Name = "Carnet Mal ingresado";
                    afiliado.Plan = "";
                }
            }
            catch (Exception ex)
            {
                var afi = new Afiliado {
                    HasError = true
                };
                afi.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? string.Empty, credencial, string.Empty);
                return(afi);
            }
            return(afiliado);
        }