Esempio n. 1
0
        public async Task <ActionResult <PacienteItem> > PostPacienteItem(PacienteItem item)
        {
            calcularPaciente(item);
            _context.Pacientes.Add(item);
            await _context.SaveChangesAsync();


            return(CreatedAtAction(nameof(GetPacienteItem), new { cedula = item.cedula }, item));
        }
Esempio n. 2
0
        public void calcularPaciente(PacienteItem item)
        {
            if (item.Salario > 2500000)
            {
                item.Tarifa      = 0.2;
                item.ValorCopago = (item.Tarifa * item.ValorServivcio);
            }
            else
            {
                item.Tarifa = 0.1;

                item.ValorCopago = (item.Tarifa * item.ValorServivcio);
            }
        }
Esempio n. 3
0
        public async Task SaveEventAndInternacaoAsync(IntegrationEvent EvtPac, IntegrationEvent EvtPacAc, IntegrationEvent EvtSitS, IntegrationEvent EvtSitU, PacienteItem pacienteToSave, SituacaoItem situacaoToSave)
        {
            List <IntegrationEvent> lst = new List <IntegrationEvent>();
            var strategy = _operacionalContext.Database.CreateExecutionStrategy();
            await strategy.ExecuteAsync(async() =>
            {
                using (var transaction = _operacionalContext.Database.BeginTransaction())
                {
                    try
                    {
                        await _operacionalContext.SaveChangesAsync();
                        //Tratamento de Identity
                        ((Events.PacienteSaveIE)EvtPac).PacienteId = pacienteToSave.Id_Paciente;
                        lst.Add(EvtPac);
                        ((Events.PacienteAcomodacaoSaveIE)EvtPacAc).PacienteId           = pacienteToSave.Id_Paciente;
                        ((Events.PacienteAcomodacaoSaveIE)EvtPacAc).PacienteAcomodacaoId = pacienteToSave.PacienteAcomodacaoItems[0].Id_PacienteAcomodacao;
                        lst.Add(EvtPacAc);

                        ((Events.SituacaoSaveIE)EvtSitS).SituacaoAcomodacaoId = situacaoToSave.Id_SituacaoAcomodacao;
                        lst.Add(EvtSitS);
                        lst.Add(EvtSitU);

                        await _eventLogService.SaveEventAsync(lst, _operacionalContext.Database.CurrentTransaction.GetDbTransaction());
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        var sqlException = ex.InnerException as System.Data.SqlClient.SqlException;
                        throw new Exception(sqlException.Number + "::" + sqlException.Message);
                    }
                }
            });
        }
Esempio n. 4
0
 public async Task SaveEventAndPacienteContextChangesAsync(IntegrationEvent evt, PacienteItem pacienteToSave)
 {
     var strategy = _operacionalContext.Database.CreateExecutionStrategy();
     await strategy.ExecuteAsync(async() =>
     {
         using (var transaction = _operacionalContext.Database.BeginTransaction())
         {
             try
             {
                 await _operacionalContext.SaveChangesAsync();
                 //Tratamento de Identity
                 ((Events.PacienteSaveIE)evt).PacienteId = pacienteToSave.Id_Paciente;
                 await _eventLogService.SaveEventAsync(evt, _operacionalContext.Database.CurrentTransaction.GetDbTransaction());
                 transaction.Commit();
             }
             catch (Exception ex)
             {
                 transaction.Rollback();
                 var sqlException = ex.InnerException as System.Data.SqlClient.SqlException;
                 throw new Exception(sqlException.Number + "::" + sqlException.Message);
             }
         }
     });
 }
Esempio n. 5
0
        private static Valid <bool> ValidaExistePacienteCadastrado(OperacionalContext context,
                                                                   IOptionsSnapshot <OperacionalSettings> settings,
                                                                   IStringLocalizer <IntegracaoController> localizer,
                                                                   int IdEmpresa,
                                                                   int IdAcomodacao,
                                                                   string CodExternoPaciente,
                                                                   string NomePaciente,
                                                                   DateTime DataNascimentoPaciente,
                                                                   string GeneroPaciente
                                                                   )
        {
            OperacionalSettings _settings;

            _settings = settings.Value;
            IStringLocalizer <IntegracaoController> _localizer;

            _localizer = localizer;
            Valid <bool> vl = new Valid <bool>();

            //CONSULTA O PACIENTE
            var pacienteToExist = context.PacienteItems
                                  .OfType <PacienteItem>()
                                  .SingleOrDefault(c => c.Cod_Externo == CodExternoPaciente);

            //VALIDA SE EXISTE O PACIENTE
            if (pacienteToExist == null)
            {
                //INCLUI PACIENTE
                PacienteItem pacienteToSave = new PacienteItem();
                pacienteToSave.Nome_Paciente         = NomePaciente;
                pacienteToSave.Dt_NascimentoPaciente = DataNascimentoPaciente;
                pacienteToSave.GeneroPaciente        = GeneroPaciente;
                pacienteToSave.Cod_Externo           = CodExternoPaciente;
                pacienteToSave.PendenciaFinanceira   = "N";

                //ASSOCIA O PACIENTE
                List <PacienteAcomodacaoItem> lstPacienteAcomodacao = new List <PacienteAcomodacaoItem>();

                PacienteAcomodacaoItem pacienteAcomodacaoToSave = new PacienteAcomodacaoItem();
                pacienteAcomodacaoToSave.Id_Acomodacao  = IdAcomodacao;
                pacienteAcomodacaoToSave.NumAtendimento = "INTERNO";
                pacienteAcomodacaoToSave.Dt_Entrada     = DateTime.Now;
                pacienteAcomodacaoToSave.Dt_Saida       = null;

                lstPacienteAcomodacao.Add(pacienteAcomodacaoToSave);

                pacienteToSave.PacienteAcomodacaoItems = lstPacienteAcomodacao;

                context.PacienteItems.Add(pacienteToSave);
            }
            else
            {
                //ATUALIZA
                pacienteToExist.Nome_Paciente         = NomePaciente;
                pacienteToExist.Dt_NascimentoPaciente = DataNascimentoPaciente;
                pacienteToExist.GeneroPaciente        = GeneroPaciente;
                pacienteToExist.PendenciaFinanceira   = "N";

                //VALIDA ASSOCIACAO
                //SENAO ESTA ASSOCIADO ASSOCIA.
                ValidaExistePacienteAcomodacao(context, settings, localizer, IdEmpresa, IdAcomodacao, pacienteToExist.Id_Paciente);

                context.PacienteItems.Update(pacienteToExist);
            }

            vl.retorno = true;
            vl.msg     = "SUCESSO";
            return(vl);
        }