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)); }
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); } }
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); } } }); }
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); } } }); }
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); }