public async Task <IActionResult> Post([FromBody] GuiaDto guiaDto) { try { var guia = _mapper.Map <GuiaDto, Guia>(guiaDto); var guidePerformerCodeType = Enums.PerformerCodeType.codigoPrestadorNaOperadora; // Complemento da Guia var guiaNumero = await _GuiaNumeroRepository.GetLastGuiaIdAsync(guia.Prestador.Codigo); guia.GuiaNumero.Numero = guiaNumero.ToString(); guia.GuiaNumero.NumeroOperadora = ""; BeneficiarioResponse beneficiario = _BeneficiarioService.SeachBeneficiario(guia.Beneficiario.Cartao); guia.Beneficiario.Nome = beneficiario.guideBeneficiaryName; _PushRequest.CodAtendimento = "123"; _PushRequest.Associado.CodAcompanhante = ""; _PushRequest.Associado.CodAssociado = guia.Beneficiario.Cartao; var prestador = _PrestadorService.PrestadorDescription(guia.Prestador.Codigo); _PushRequest.Prestador.CodPrestador = guia.Prestador.Codigo; _PushRequest.Prestador.Endereco = "193"; _PushRequest.Prestador.Localizacao.Latitude = ""; _PushRequest.Prestador.Localizacao.Longitude = ""; _PushRequest.Prestador.NomePrestador = prestador; guia.PushId = _PushService.GetPushCode(_PushRequest); guia.TokenId = _TokenService.GetTokenCode(_PushRequest.Associado.CodAssociado); guia.GuiaOrigemFK = (int)Enums.SourceInterface.Telemedicina; guia.StatusCheckInFK = (int)Enums.StatusCheckIns.Valido; guia.GuiaTipoFK = (int)Enums.TypeGuia.Consulta; guia.GuiaStatusFK = (int)Enums.StatusGuia.Aberta; MedicoResponse profissional = _PrestadorService.PrestadorMedico(guia.Prestador.Codigo, guiaDto.ProfissionalUFCRM, Convert.ToInt32(guiaDto.ProfissionalCRM), null); guia.GuiaXML = _GuiaService.GenerateXMLGuia(guia, guidePerformerCodeType, prestador, beneficiario, profissional, guiaDto.Procedimento); string textGuia = guia.GuiaXML.ToString(); _logger.LogInformation(textGuia); _GuiaRepository.Save(guia); await _uow.CommitAsync(); return(Created($"/v1/guia/{guia.Id}", null)); } catch (System.Exception ex) { _uow.Rollback(); return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Falha no banco de dados, detalhes : {ex.Message}")); } }
public BeneficiarioResponse SeachBeneficiario(string cartaoBeneficiario) { var token = login(); var cartao = cartaoBeneficiario.Substring(0, 8); var sequencial = cartaoBeneficiario.Substring(8, 2); RestRequest request = new RestRequest($"Associado/GetBeneficiariosPrestador", Method.GET); request.Parameters.Clear(); request.AddHeader("Content-Type", "application/json; charset=utf-8"); request.AddHeader("Accept", "application/json"); request.AddHeader("Authorization", string.Format("Bearer {0}", token)); request.AddParameter("pCdPrestador", ParameterType.QueryString); request.AddParameter("pNrTitulo", cartao, ParameterType.QueryString); request.AddParameter("pNrSqTitulo", sequencial, ParameterType.QueryString); request.AddParameter("pNome", ParameterType.QueryString); request.AddParameter("pNrCPF", ParameterType.QueryString); IRestResponse <string> response = client.Execute <string>(request); if (response.StatusCode != System.Net.HttpStatusCode.OK) { return(null); } var beneficiario = response.Content.Split('-'); var guideBeneficiaryNumber = beneficiario[0].Remove(0, 2); var guideBeneficiarySequency = Regex.Match(beneficiario[0], @"(.{2})\s*$").ToString(); var guideBeneficiaryName = beneficiario[1]; var guideBeneficiaryCompanionRG = beneficiario[4]; var result = new BeneficiarioResponse { guideBeneficiaryName = guideBeneficiaryName, guideBeneficiaryNumber = guideBeneficiaryNumber, guideBeneficiarySequency = guideBeneficiarySequency, guideBeneficiaryCompanionRG = guideBeneficiaryCompanionRG }; return(result); }
public string GenerateXMLGuia(Guia guia, Enums.PerformerCodeType performerCodeType, string prestador, BeneficiarioResponse beneficiario, MedicoResponse profissional, string procedimento) { var guiaXML = new guiaAtendimentoObj { guideANS = Consts.CodeANSOmint, guideTypeId = guia.GuiaTipoFK, guideStatusId = guia.GuiaStatusFK, guideOrgimId = guia.GuiaOrigemFK, guideId = 0, guideDayCare = guia.Data.ToString("dd/MM/yyyy"), providerId = guia.Prestador.Codigo, providerUnidadeId = guia.Unidade.Id.ToString(), guidePerformerName = prestador, guidePerformerCode = guia.Prestador.Codigo, guidePerformerCodeType = performerCodeType.ToString(), guidePerformerCNES = Consts.CodeCNESConsulta, guideQueryType = "1", guideIndicationCrahs = "9", guideTableNumber = "00", guideObservation = string.Format(Consts.GuideObservation, guia.PushId, guia.TokenId), guideToken = guia.PushId, guideBeneficiaryToken = guia.TokenId, guideCheckingStatus = guia.StatusCheckInFK, guideNumber = guia.GuiaNumero.Numero, guideNumberHealth = guia.GuiaNumero.NumeroOperadora, guideBeneficiaryRN = "N", guideBeneficiaryName = guia.Beneficiario.Nome, guideBeneficiaryNumber = guia.Beneficiario.Cartao, guideBeneficiaryNumberCompanion = "0", guideBeneficiaryCompanionRG = beneficiario?.guideBeneficiaryCompanionRG, guideBeneficiaryCompanionName = "", guideBeneficiaryCompanionType = "", guidePerformerProfRede = true, guidePerformerProfName = profissional?.medicoNome, guidePerformerProfCode = profissional?.medicoCpfCnpj.Trim(), guidePerformerProfAdviceUF = profissional?.medicoCRMUF, guidePerformerProfAdviceCBOS = profissional != null ? Consts.CodeCBOSConsulta: null, guidePerformerProfAdviceNumber = profissional?.medicoCRM.Trim(), guidePerformerProfAdviceAcronym = profissional != null ? ((int)(Enums.AdviceType)System.Enum.Parse(typeof(Enums.AdviceType), "CRM")).ToString(): null, guideProcedureOk = 1, guideProcedureNumber = procedimento, guideProcedures = new procedimentosXML[1] { new procedimentosXML { dateExecution = guia.Data.ToString("dd/MM/yyyy"), procedureNumber = procedimento, procedureAmount = "1", procedureDescription = "Descrição do Procedimento", priceUnit = guia.Valor, priceTotal = guia.Valor } }, guidePriceProcedure = guia.Valor, guidePriceGrandTotal = guia.Valor, guideBlocked = false }; return(ToString(guiaXML, typeof(guiaAtendimentoObj), Encoding.UTF8)); }