public async Task <CustomResponse <FilaRegistro> > AberturaBoletim(FilaRegistro filaRegistro, Guid userId)
        {
            var _response = new CustomResponse <FilaRegistro>();

            try
            {
                var _pessoaMaster = (PessoaProfissional)_contextKlinikos.Pessoas.Where(x => x.Master).FirstOrDefault();

                await this.Atualizar(filaRegistro, userId);

                var _pessoaStatusId = _contextDominio.PessoaStatus.Where(x => x.Sigla == "AB").FirstOrDefault().PessoaStatusId;
                filaRegistro.Acolhimento.PessoaPaciente.PessoaStatusId = _pessoaStatusId;

                await _servicePaciente.AtualizarPaciente(filaRegistro.Acolhimento.PessoaPaciente, userId);


                var _filaRegistroEvento = new FilaRegistroEvento
                {
                    FilaRegistro           = filaRegistro,
                    DataFilaRegistroEvento = filaRegistro.DataEntradaFilaRegistro,
                    EventoId           = _contextDominio.Eventos.Where(x => x.Sigla == "S").FirstOrDefault().EventoId,
                    PessoaProfissional = filaRegistro.Acolhimento.PessoaProfissional
                };


                await _serviceFilaRegistroEvento.Adicionar(_filaRegistroEvento, userId);

                _response.StatusCode = StatusCodes.Status201Created;
                _response.Result     = filaRegistro;
                _response.Message    = "retirado com sucesso";
            }
            catch (Exception ex)
            {
                _response.Message = ex.InnerException.Message;
                Error.LogError(ex);
            }

            return(_response);
        }
 public async Task <CustomResponse <FilaRegistroEvento> > ConsultarRegistrosCancelados([FromBody] FilaRegistroEvento filaregistroevento)
 {
     return(await _service.ConsultarRegistrosCancelados(filaregistroevento, Guid.Parse(HttpContext.User.Identity.Name)));
 }
 public async Task <CustomResponse <FilaRegistroEvento> > Put([FromBody] FilaRegistroEvento filaregistroevento)
 {
     return(await _service.Atualizar(filaregistroevento, Guid.Parse(HttpContext.User.Identity.Name)));
 }
 public async Task <CustomResponse <FilaRegistroEvento> > Incluir([FromBody] FilaRegistroEvento filaregistroevento)
 {
     return(await _service.Adicionar(filaregistroevento, Guid.Parse("285CE313-2D96-4425-9A70-B1E71BC17020")));
 }
        public async Task <CustomResponse <FilaRegistro> > AdicionarPacienteFila(FilaRegistro filaRegistro, Guid userId)
        {
            var _response = new CustomResponse <FilaRegistro>();

            try
            {
                var _pessoaMaster = (PessoaProfissional)_contextKlinikos.Pessoas.Where(x => x.Master).FirstOrDefault();

                var _pacienteJaAcolhido = false;


                if (filaRegistro.Acolhimento.PessoaPaciente.PessoaId != Guid.Empty)
                {
                    _pacienteJaAcolhido = _contextKlinikos.FilaRegistro.Any(x => x.Acolhimento.PessoaPaciente.PessoaId == filaRegistro.Acolhimento.PessoaPaciente.PessoaId && x.Ativo);
                }

                if (!_pacienteJaAcolhido)
                {
                    await this.Adicionar(filaRegistro, userId);
                }
                else
                {
                    _response.StatusCode = StatusCodes.Status409Conflict;
                    _response.Message    = "Paciente já acolhido";
                    return(_response);
                }


                if (filaRegistro.Acolhimento != null)
                {
                    await _serviceAcolhimentoHistorico.AdicionarHistoricoAcolhimento(filaRegistro.Acolhimento, _pessoaMaster);


                    if (filaRegistro.Acolhimento.PessoaPaciente != null)
                    {
                        await _servicePessoaHistorico.AdicionarHistoricoPaciente(filaRegistro.Acolhimento.PessoaPaciente, _pessoaMaster);
                    }


                    var _filaRegistroEvento = new FilaRegistroEvento
                    {
                        FilaRegistro           = filaRegistro,
                        DataFilaRegistroEvento = filaRegistro.DataEntradaFilaRegistro,
                        EventoId           = _contextDominio.Eventos.Where(x => x.Sigla == "A").FirstOrDefault().EventoId,
                        PessoaProfissional = filaRegistro.Acolhimento.PessoaProfissional
                    };


                    await _serviceFilaRegistroEvento.Adicionar(_filaRegistroEvento, userId);
                }



                _response.StatusCode = StatusCodes.Status201Created;
                _response.Result     = filaRegistro;
                _response.Message    = "Incluído com sucesso";
            }
            catch (Exception ex)
            {
                _response.Message = ex.InnerException.Message;
                Error.LogError(ex);
            }

            return(_response);
        }