private AnulacionOS SetAnulacionOs(string data, Anular model) { var anulacionOs = new AnulacionOS(); try { anulacionOs = new AnulacionOS { IdAuth = model.AuthId.ToString(), Nestado = "1", Fecha = DateTime.Now.ToString(), }; // convertimos respuesta en vector var msHL7 = HL7.DecifraHL7(data); // número de la transacción tercera línea - ZAU anulacionOs.CodAnulacion = HL7.CampoHL7(msHL7[2], 2, 0); // resultado autorización tercera línea - ZAU var sEstado = HL7.CampoHL7(msHL7[2], 3, 1); anulacionOs.Estado = sEstado == "B000" ? "OK" : "NO"; } catch (Exception ex) { anulacionOs.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", model, string.Empty); } return(anulacionOs); }
public Afiliado Eligibilidad(string credencial) { var afiliado = new Afiliado(); try { var output = "MSH|^~\\&|TRIA0100M|TRIA00007160|MEDIFE|MEDIFE^222222^IIN|"; output += DateTime.Now.ToString("yyyyMMddHHmmss") + "||ZQI^Z01^ZQI_Z01|05091908480623465897|P|2.4|||NE|AL|ARG"; output += Environment.NewLine; output += "PRD|PS^CIRCULO MEDICO DE SALTA||^^^C||||30543364610^CU|"; output += Environment.NewLine; output += "PID|||" + credencial + "^^^MEDIFE^HC^MEDIFE||UNKNOWN"; output += Environment.NewLine; var resultado = _traditum.Send(output); logResult(output.ToString(), resultado.ToString(), "E"); if (resultado == "") { return new Afiliado { Name = Mensajes.Get("AfiIne") } } ; if (resultado.Contains("Error ejecutando") || resultado.Contains("no se pueden procesar") || resultado.Contains("Unable to read data")) { return(new Afiliado { Name = Mensajes.Get("ServidorNoResponde"), HasError = true }); } // convertimos respuesta en vector var msHL7 = HL7.DecifraHL7(resultado); 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 (HL7.CampoHL7(msHL7[2], 3, 1) == "B000") { afiliado.Name = HL7.CampoHL7(msHL7[4], 5, 1) + ", " + HL7.CampoHL7(msHL7[4], 5, 2); afiliado.Plan = HL7.CampoHL7(msHL7[5], 2, 0); } else { afiliado.Name = Mensajes.Get("AfiIne"); } } } catch (Exception ex) { afiliado.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", credencial, string.Empty); } return(afiliado); }
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); }
private AutorizacionOs SetAutorizacionOs(string data, Authorize model) { var autorizacionOs = new AutorizacionOs(); try { var det = new AutorizacionOsDet(); var osrepository = new OSRepository(); autorizacionOs = new AutorizacionOs { NnroAfiliado = model.Credencial, Idpre = Convert.ToInt32(model.PrestadorId), Ncodosoc = osrepository.GetOSbyId(model.OSId), Nestado = 0, NidUsuario = Convert.ToInt32(model.UserId), DfecEstado = DateTime.Today.ToString(), CcodAnulacion = "", Idfacturador = Convert.ToInt32(model.FacturadorId), }; // convertimos respuesta en vector var msHL7 = HL7.DecifraHL7(data); // tomamos la fecha de la primera línea del vector - MSH var fechaint = HL7.CampoHL7(msHL7[0], 6, 0); var sFechaAut = fechaint.Substring(0, 4) + "-" + fechaint.Substring(4, 2) + "-" + fechaint.Substring(6, 2); sFechaAut += " " + fechaint.Substring(8, 2) + ":" + fechaint.Substring(10, 2) + ":" + fechaint.Substring(12, 2); autorizacionOs.DfecAutorizacion = sFechaAut; // número de la transacción tercera línea - ZAU **Codigo Interno de la transaccion var sIdTransaccion = HL7.CampoHL7(msHL7[2], 2, 0); autorizacionOs.CcodinternoAutorizacion = sIdTransaccion; autorizacionOs.CnroAutorizacion = sIdTransaccion; // resultado autorización tercera línea - ZAU var sEstado = HL7.CampoHL7(msHL7[2], 3, 1); switch (sEstado) { case "B000": sEstado = "Autorizada"; break; case "B001": sEstado = "Autorizada Parcial"; break; default: sEstado = "Rechazada"; break; } autorizacionOs.EstadoAutorizacion = sEstado; autorizacionOs.ResultadoAutorizacion = sEstado; // mensaje corto autorizacion tercera línea - ZAU HL7.CampoHL7(msHL7[2], 3, 2); // nombre del afiliado quinta linea - PID autorizacionOs.CnomAfiliado = (HL7.CampoHL7(msHL7[5], 5, 1) + " " + HL7.CampoHL7(msHL7[5], 5, 2)); // plan del afiliado sexta linea - IN1 autorizacionOs.CdescripcionPlan = HL7.CampoHL7(msHL7[6], 2, 0); // condicion IVA septima linea - ZIN autorizacionOs.CdescripcionIva = HL7.CampoHL7(msHL7[7], 2, 2); var indice = 8; while (msHL7[indice] != "") { switch (msHL7[indice].Substring(0, 4)) { case "PR1|": det.PracticaId = HL7.CampoHL7(msHL7[indice], 3, 1); HL7.CampoHL7(msHL7[indice], 3, 2); break; case "AUT|": det.PracticaCantAprob = HL7.CampoHL7(msHL7[indice], 8, 0); break; case "ZAU|": var sEstadox = HL7.CampoHL7(msHL7[indice], 3, 1); det.PracticaIdEstado = sEstadox == "B000" || sEstadox == "B001" ? "Autorizada" : "Rechazada"; det.PracticaDetAuth = HL7.CampoHL7(msHL7[indice], 3, 2); det.PracticaDes = osrepository.GetPrescDesc(det.PracticaId, model.Prestaciones, model); det.PracticaAuthNr = sIdTransaccion; autorizacionOs.AutorizacionOsDet.Add(det); det = new AutorizacionOsDet(); break; } indice++; } } catch (Exception ex) { autorizacionOs.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", model, string.Empty); } return(autorizacionOs); }
public Afiliado Eligibilidad(string credencial) { string cadena; string plan; var afiliado = new Afiliado(); try { var output = "MSH|^~\\&|TRIA0100M|TRIA00007160|SWISSHL7|SWISS^800006^IIN|"; output += DateTime.Now.ToString("yyyyMMddHHmmss") + "||ZQI^Z01^ZQI_Z01|08050522304540783782|P|2.4|||NE|AL|ARG"; output += Environment.NewLine; output += "PRD|PS^Prestador Solicitante||^^^A||||30543364610^CU|"; output += Environment.NewLine; output += "PID|||" + credencial + "^^^SWISS^HC||UNKNOWN"; output += Environment.NewLine; //Call WebService var resultado = _traditum.Send(output); logResult(output.ToString(), resultado.ToString(), "E"); var OSerror = false; if (resultado == "") { return new Afiliado { Name = Mensajes.Get("AfiIne") } } ; if (resultado.Contains("Error ejecutando") || resultado.Contains("no se pueden procesar") || resultado.Contains("Unable to read data") || resultado.Contains("El cliente encontró el tipo de contenido de respuesta")) { OSerror = OsStatus.checkSwiss(true); afiliado.Name = Mensajes.Get("ServidorNoResponde"); afiliado.SetError(GetType().Name, 37, Mensajes.Get("ServidorNoResponde"), string.Empty, credencial, string.Empty, OSerror); return(afiliado); } // convertimos respuesta en vector var msHL7 = HL7.DecifraHL7(resultado); var index = 0; if (msHL7.Length > 1) { index = msHL7[1].IndexOf("En estos momentos, no se pueden procesar transacciones"); } else { index = 2; } if (index > 0) { OSerror = OsStatus.checkSwiss(true); afiliado.Name = Mensajes.Get("ServidorNoResponde"); afiliado.SetError(GetType().Name, 37, Mensajes.Get("ServidorNoResponde"), string.Empty, credencial, string.Empty, OSerror); } else { OSerror = OsStatus.checkSwiss(false); if (HL7.CampoHL7(msHL7[2], 3, 1) == "B000") { cadena = HL7.CampoHL7(msHL7[4], 5, 1) + ", " + HL7.CampoHL7(msHL7[4], 5, 2); plan = HL7.CampoHL7(msHL7[5], 2, 0); } else { cadena = Mensajes.Get("AfiIne"); plan = ""; } afiliado.Name = cadena; afiliado.Plan = 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); }