private void Aceitar_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(Motivo.Text).Equals(false))
            {
                DialogResult result1 = MessageBox.Show("Deseja negar o agendamento ?",
                Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result1 == DialogResult.Yes)
                {
                    using (DAHUEEntities db = new DAHUEEntities())
                    {
                        solicitacoes_paciente sp = db.solicitacoes_paciente.First(p => p.idPaciente_Solicitacoes == idpaciente);
                        sp.Registrado = "Aguardando resposta do solicitante";

                        historico h = new historico();
                        h.DtHrRegistro = DateTime.Now;
                        h.idPaciente_Solicitacao = idpaciente;
                        h.Usuario = System.Environment.UserName;
                        h.Obs = Motivo.Text;

                        db.historico.Add(h);

                        db.SaveChanges();
                    }
                    MessageBox.Show("Solicitação negada com sucesso !");
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Erro ao enviar !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void puxarAgendadasPendentes()
        {
            var final = Calendario.SelectionRange.End.AddHours(23).AddMinutes(59).AddSeconds(59);
            var comeco = Calendario.SelectionRange.Start;
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            where sp.AmSolicitada == 0 &&
                            sp.Agendamento == "Sim" &&
                            (sp.DtHrdoAgendamento >= comeco && sp.DtHrdoAgendamento <= final) &&
                            sp.Registrado == "Aguardando resposta do controle"
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                sp.LocalSolicitacao,
                                sp.Agendamento,
                                sp.DtHrdoAgendamento,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                sp.Prioridade,
                                sp.Motivo,
                                sp.Origem,
                                sp.Destino
                            };

                var queryAmbu = query.ToList();
                var querycont = query.Count();
                Encaminhados.Text = "Solicitações agendadas (" + querycont + ")";
                ListaAgendados.DataSource = queryAmbu;
                ListaAgendados.ClearSelection();

            }
        }
        private void BtnConfirmando_Click(object sender, EventArgs e)
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                var query = (from sa in db.solicitacoes_ambulancias
                             where sa.idSolicitacoesPacientes == idpaciente &&
                             sa.SolicitacaoConcluida == 0
                             select sa).Count();
                if(query >= 1)
                {
                    MessageBox.Show("Paciente está em transporte, necessário entrar em contato com o Controle para cancelar !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Dispose();
                }
            }

            DialogResult result1 = MessageBox.Show("Deseja cancelar a solicitação do paciente na ambulancia ?",
            "Atenção !",
            MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result1 == DialogResult.Yes)
            {
                cancelar();
                this.Dispose();

            }
        }
        private void Novo_Click(object sender, EventArgs e)
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                var enderecosPesquisa = (from ende in db.enderecos
                                        where ende.NomeUnidade == NomeUnidade.Text
                                        select ende.idControle).Count();
                if(enderecosPesquisa >= 1)
                {
                    MessageBox.Show("Endereço ja existe !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            if(String.IsNullOrEmpty(NomeUnidade.Text).Equals(false) || String.IsNullOrEmpty(Endereco.Text).Equals(false))
            {
                using(DAHUEEntities db = new DAHUEEntities())
                {
                    enderecos en = new enderecos();
                    en.NomeUnidade = NomeUnidade.Text;
                    en.Endereco = Endereco.Text;
                    en.Telefone = Telefone.Text;

                    db.enderecos.Add(en);
                    db.SaveChanges();
                    MessageBox.Show("Endereço salva com sucesso !", "Sucesso");
                }
                puxarEnderecos();
            }
        }
        private void puxarReagendamentoENegadas()
        {
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var reagendamentos = (from sad in db.solicitacoes_agendamentos
                                      join sp in db.solicitacoes_paciente
                                      on sad.idSolicitacao_paciente equals sp.idPaciente_Solicitacoes into sad_join
                                      from sp in sad_join.DefaultIfEmpty()
                                      where sad.idSolicitacao_paciente == paciente
                                      select new
                                      {
                                          ID = sad.idSolicitacaoAgendamento,
                                          sad.DtHrAgendamento
                                      }).ToList();

                ListaReagementos.DataSource = reagendamentos;
                //ListaReagementos.Refresh();

                var negativas = (from h in db.historico
                                 where h.Obs != "" && h.Obs != null && h.idPaciente_Solicitacao == paciente
                                 select new
                                 {
                                     h.IdHistorico,
                                     h.DtHrRegistro,
                                     h.Obs
                                 }).ToList();

                Negadas.DataSource = negativas;
                //Negadas.Refresh();
            }
        }
        public void alterarCamposDaSolicitacao(int idPaciente, string tipoAM, string agendamento, DateTime DtHrdoAgendamento, string nomeSolicitante, string localSolicitante,
            string telefone, string nomePaciente, string sexo, string idade, string diagnostico, string motivoChamado, string tipoMotivoChamado, string prioridade, string origem, string enderecoOrigem,
            string destino, string enderecoDestino, string registrado, string horaRegistrado, string obsGerais)
        {
            using(DAHUEEntities db = new DAHUEEntities())
                                                {
                                                    solicitacoes_paciente sp = db.solicitacoes_paciente.First(p => p.idPaciente_Solicitacoes == idPaciente);
                                                    sp.TipoSolicitacao = tipoAM;
                                                    sp.Agendamento = agendamento;
                                                    sp.DtHrdoAgendamento = DtHrdoAgendamento;
                                                    sp.NomeSolicitante = nomeSolicitante;
                                                    sp.LocalSolicitacao = localSolicitante;
                                                    sp.Telefone = telefone;
                                                    sp.Paciente = nomePaciente;
                                                    sp.Genero = sexo;
                                                    sp.Idade = idade;
                                                    sp.Diagnostico = diagnostico;
                                                    sp.Motivo = motivoChamado;
                                                    sp.SubMotivo = tipoMotivoChamado;
                                                    sp.Prioridade = prioridade;
                                                    sp.Origem = origem;
                                                    sp.EnderecoOrigem = enderecoOrigem;
                                                    sp.Destino = destino;
                                                    sp.EnderecoDestino = enderecoDestino;
                                                    sp.ObsGerais = obsGerais;

                                                    db.SaveChanges();
                                                }
                                                MessageBox.Show("Solicitação alterada com sucesso !!!");
        }
        private void consultaSolicitacoes_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            IDpesquisa = Convert.ToInt32(consultaSolicitacoes.Rows[e.RowIndex].Cells[0].Value.ToString());

            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = (from sa in db.solicitacoes_ambulancias
                             join sp in db.solicitacoes_paciente on sa.idSolicitacoesPacientes
                             equals sp.idPaciente_Solicitacoes into sp_join
                             from sp in sp_join.DefaultIfEmpty()
                             where sa.idSolicitacoesPacientes == IDpesquisa
                             select new
                             {
                                 IDpaciente = sa.idSolicitacoesPacientes,
                                 idSolicitacaoAm = sa.idSolicitacoes_Ambulancias,
                                 Data = sp.DtHrdoInicio,
                                 NomePaciente = sp.Paciente,
                                 Idade = sp.Idade,
                                 Origem = sp.Origem,
                                 Destino = sp.Destino
                             }).ToList();
                ListaSolicitacaoPaciente.DataSource = query;
                ListaSolicitacaoPaciente.Refresh();
                ListaSolicitacaoPaciente.Columns["IDpaciente"].Visible = false;
                ListaSolicitacaoPaciente.Columns["idSolicitacaoAm"].Visible = false;
            }

            if (ListaSolicitacaoPaciente.Rows.Count == 0)
            {
                SelecionaAM sand = new SelecionaAM(IDpesquisa, 0, 0);
                this.Dispose();
                sand.ShowDialog();
            }
        }
        public void puxarAgendadasRespondidasPeloSolicitante()
        {
            int zero = 0;
            var final = Calendario.SelectionRange.End;
            var comeco = Calendario.SelectionRange.Start;
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            where sp.AmSolicitada == zero &&
                            sp.Agendamento == "Sim" &&
                            SqlFunctions.DateDiff("day", final, sp.DtHrdoAgendamento) == 0 &&
                            sp.Registrado == "Aguardando resposta do controle" &&
                            sp.LocalSolicitacao == Unidade
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                sp.LocalSolicitacao,
                                sp.Agendamento,
                                sp.DtHrdoAgendamento,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                sp.Prioridade,
                                sp.Motivo,
                                sp.Origem,
                                sp.Destino
                            };
                var quertCont = query.Count();
                var queryAmbu = query.ToList();
                Respondidos.Text = "Respondidos (" + quertCont +")";
                ListaAgendados.DataSource = queryAmbu;
                ListaAgendados.ClearSelection();

            }
        }
        public void puxarAgendadas()
        {
            int zero = 0;
            DateTime Data = DateTime.Now;

            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            join saa in db.solicitacoes_agendamentos
                            on sp.idReagendamento equals saa.idSolicitacaoAgendamento into spsaaajoin
                            from saa in spsaaajoin.DefaultIfEmpty()
                            where sp.AmSolicitada == zero &&
                            sp.Agendamento == "Sim"
                            && sp.Registrado == "Sim"
                            && SqlFunctions.DateDiff("day", Data, sp.DtHrdoAgendamento) == 0
                            orderby sp.Paciente ascending
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                sp.DtHrdoAgendamento,
                                Data_Reagendada = saa.DtHrAgendamento,
                                Prioridade = (sp.Prioridade.Contains("P0") ? "P0" : (sp.Prioridade.Contains("P1") ? "P1" : (sp.Prioridade.Contains("P2") ? "P2" : (sp.Prioridade.Contains("P3") ? "P3" : "SP")))),
                                sp.Motivo,
                                sp.SubMotivo,
                                sp.Origem,
                                sp.EnderecoOrigem,
                                sp.Destino,
                                sp.LocalSolicitacao,
                                sp.Telefone,
                                sp.ObsGerais
                            };

                this.listaAgendadas.RowTemplate.MinimumHeight = 22;

                var queryAmbu = query.DefaultIfEmpty().ToList();
                var contar = query.Count();
                contarAgendadas = contar.ToString();
                txtTotal3.Text = contar.ToString();
                listaAgendadas.DataSource = queryAmbu;
                listaAgendadas.ClearSelection();

                this.listaAgendadas.Columns.Add("VTR", "VTR");
                this.listaAgendadas.Columns.Add("Fixo", "Fixo");

                this.listaAgendadas.Columns["VTR"].DisplayIndex = 12;
                this.listaAgendadas.Columns["Fixo"].DisplayIndex = 13;

                this.listaAgendadas.Columns["VTR"].Visible = false;
                this.listaAgendadas.Columns["Fixo"].Visible = false;
            }
        }
        private void puxarEnderecos()
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                var query = (from en in db.enderecos
                             select new { en.idControle, en.NomeUnidade, en.Endereco, en.Telefone }).ToList();

                TabelaEnderecos.DataSource = query;
                TabelaEnderecos.Refresh();
            }
        }
 public void Endereco()
 {
     using (DAHUEEntities db = new DAHUEEntities())
     {
         CbLocalSolicita.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         CbLocalSolicita.ValueMember = "NomeUnidade";
         CbLocalSolicita.DisplayMember = "NomeUnidade";
         CbDestino.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         CbDestino.ValueMember = "NomeUnidade";
         CbDestino.DisplayMember = "NomeUnidade";
         CbOrigem.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         CbOrigem.ValueMember = "NomeUnidade";
         CbOrigem.DisplayMember = "NomeUnidade";
     }
 }
        public void inserirSolicitacaoDoPaciente(string TipoSolicitacao, DateTime DtHrdoInicio, string Agendamento, DateTime DtHrdoAgendamento,
            string NomeSolicitante, string LocalSolicitacao, string Telefone, string Paciente, string Genero, string Idade,string Diagnostico, 
            string Motivo, string SubMotivo, string Prioridade, string Origem, string EnderecoOrigem, string Destino, string EnderecoDestino, 
            string ObsGerais, int AmSolicitada, string usuario, DateTime DtHrRegistro)
        {
            using (DAHUEEntities dahue = new DAHUEEntities())
            {

                solicitacoes_paciente solicitacoesPaciente = new solicitacoes_paciente();

                solicitacoesPaciente.TipoSolicitacao = TipoSolicitacao;
                solicitacoesPaciente.DtHrdoInicio = DtHrdoInicio;
                solicitacoesPaciente.Agendamento = Agendamento;
                solicitacoesPaciente.DtHrdoAgendamento = DtHrdoAgendamento;
                solicitacoesPaciente.NomeSolicitante = NomeSolicitante;
                solicitacoesPaciente.LocalSolicitacao = LocalSolicitacao;
                solicitacoesPaciente.Telefone = Telefone;
                solicitacoesPaciente.Paciente = Paciente;
                solicitacoesPaciente.Genero = Genero;
                solicitacoesPaciente.Idade = Idade;
                solicitacoesPaciente.Diagnostico = Diagnostico;
                solicitacoesPaciente.Motivo = Motivo;
                solicitacoesPaciente.SubMotivo = SubMotivo;
                solicitacoesPaciente.Prioridade = Prioridade;
                solicitacoesPaciente.Origem = Origem;
                solicitacoesPaciente.EnderecoOrigem = EnderecoOrigem;
                solicitacoesPaciente.Destino = Destino;
                solicitacoesPaciente.EnderecoDestino = EnderecoDestino;
                solicitacoesPaciente.ObsGerais = ObsGerais;
                solicitacoesPaciente.AmSolicitada = AmSolicitada;
                if (Agendamento == "Sim")
                {
                    solicitacoesPaciente.Registrado = "Aguardando resposta do controle";
                }
                else
                {
                    solicitacoesPaciente.Registrado = "Sim";
                }
                historico hi = new historico();
                hi.Usuario = usuario;
                hi.DtHrRegistro = DtHrRegistro;

                dahue.solicitacoes_paciente.Add(solicitacoesPaciente);
                dahue.historico.Add(hi);
                dahue.SaveChanges();
            }
            MessageBox.Show("Solicitação salva com sucesso !!!");
        }
        public void cancelarSolicitacao(int idPaciente, int idSolicitacaoAM, string MotivoCancelamento, string DtHrCancelamento, string ResposavelCancelamento, string ObsCancelamento)
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                cancelados_pacientes cancelados = new cancelados_pacientes();
                cancelados.idPaciente = idPaciente;
                cancelados.idSolicitacaoAM = idSolicitacaoAM;
                cancelados.MotivoCancelamento = MotivoCancelamento;
                cancelados.DtHrCancelamento = DtHrCancelamento;
                cancelados.ResposavelCancelamento = ResposavelCancelamento;
                cancelados.ObsCancelamento = ObsCancelamento;

                db.cancelados_pacientes.Add(cancelados);

                db.SaveChanges();
            }
        }
Example #14
0
 public void atualizarStatusOcupadoPacientePorCodigo()
 {
     //atualizar a AM dependendo do status no banco
     using(DAHUEEntities db = new DAHUEEntities())
     {
         var query = from sp in db.solicitacoes_paciente
                     where sp.idPaciente_Solicitacoes == idPaciente
                     select new
                     {
                         sp.idPaciente_Solicitacoes,
                         sp.Paciente
                     };
         var querySP = query.ToList();
         ListadePacientes.DataSource = querySP;
         ListadePacientes.Columns[0].Visible = false;
     }
 }
 public void Endereco()
 {
     using (DAHUEEntities db = new DAHUEEntities())
     {
         localdasolicitacao.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         localdasolicitacao.ValueMember = "NomeUnidade";
         localdasolicitacao.DisplayMember = "NomeUnidade";
         destino.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         destino.ValueMember = "NomeUnidade";
         destino.DisplayMember = "NomeUnidade";
         origem.DataSource = db.enderecos.OrderBy(x => x.NomeUnidade).ToList();
         origem.ValueMember = "NomeUnidade";
         origem.DisplayMember = "NomeUnidade";
         OpcaoAmbulancia.DataSource = db.ambulancia.OrderBy(x => x.NomeAmbulancia).ToList();
         OpcaoAmbulancia.ValueMember = "idAmbulancia";
         OpcaoAmbulancia.DisplayMember = "NomeAmbulancia";
     }
 }
        private void Enviar_Click(object sender, EventArgs e)
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                solicitacoes_agendamentos sag = new solicitacoes_agendamentos();
                sag.idSolicitacao_paciente = idPacient;
                sag.DtHrAgendamento = dataAgendar.Value;

                db.solicitacoes_agendamentos.Add(sag);

                db.SaveChanges();

                solicitacoes_paciente sp = db.solicitacoes_paciente.First(p => p.idPaciente_Solicitacoes == idPacient);
                sp.Registrado = "Aguardando resposta do controle";
                sp.idReagendamento = sag.idSolicitacaoAgendamento;
                db.SaveChanges();
            }
            MessageBox.Show("Solicitação reagendada com sucesso !");
            this.Close();
        }
 private void ListaReagementos_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == 100 || e.KeyChar == 68)
     {
         DialogResult result1 = MessageBox.Show("Deseja exluir ?",
         "Atenção !",
         MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         if (result1 == DialogResult.Yes)
         {
             using (DAHUEEntities db = new DAHUEEntities())
             {
                 solicitacoes_agendamentos sa = db.solicitacoes_agendamentos.First(saa => saa.idSolicitacao_paciente == paciente);
                 db.solicitacoes_agendamentos.Remove(sa);
                 db.SaveChanges();
                 MessageBox.Show("Deletado !", "Sys");
             }
         }
         puxarReagendamentoENegadas();
     }
 }
 private void ListaDeAmbulancias_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == 100 || e.KeyChar == 68)
     {
         DialogResult result1 = MessageBox.Show("Deseja exluir o ambulancia ?",
         "Atenção !",
         MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         if (result1 == DialogResult.Yes)
         {
             using (DAHUEEntities db = new DAHUEEntities())
             {
                 ambulancia en = db.ambulancia.First(ea => ea.idAmbulancia == idControleAmbulancia);
                 db.ambulancia.Remove(en);
                 db.SaveChanges();
                 MessageBox.Show("Deletado !", "Sys");
             }
         }
         puxarAmbulancias();
     }
 }
        private void Negadas_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 100 || e.KeyChar == 68)
            {
                DialogResult result1 = MessageBox.Show("Deseja exluir ?",
                "Atenção !",
                MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result1 == DialogResult.Yes)
                {
                    using (DAHUEEntities db = new DAHUEEntities())
                    {
                        historico h = db.historico.First(hi => hi.IdHistorico == idhistorico);
                        db.historico.Remove(h);
                        db.SaveChanges();

                        MessageBox.Show("Deletado !", "Sys");
                    }
                }
                puxarReagendamentoENegadas();
            }
        }
        public void confirmarAmbulanciaNaSolicitacao(int IDPaciente, int idAmbu)
        {
            using(DAHUEEntities db = new DAHUEEntities())
            {
                solicitacoes_ambulancias sa = new solicitacoes_ambulancias();
                sa.idSolicitacoesPacientes = IDPaciente;
                sa.idAmbulanciaSol = idAmbu;
                sa.SolicitacaoConcluida = 0;

                db.solicitacoes_ambulancias.Add(sa);

                ambulancia am = db.ambulancia.First(a => a.idAmbulancia == idAmbu);
                am.StatusAmbulancia = "OCUPADA";
                am.Bica = 0;

                solicitacoes_paciente sp = db.solicitacoes_paciente.First(p => p.idPaciente_Solicitacoes == IDPaciente);
                sp.AmSolicitada = 1;

                db.SaveChanges();
            }
        }
        private void cancelar()
        {
            try
            {
                using (DAHUEEntities db = new DAHUEEntities())
                {
                    cancelados_pacientes cancelados = new cancelados_pacientes();
                    cancelados.idPaciente = idpaciente;
                    cancelados.idSolicitacaoAM = 0;
                    cancelados.MotivoCancelamento = MotivoCancelar.Text;
                    cancelados.DtHrCancelamento = DtHrCancelamento.Text;
                    cancelados.ResposavelCancelamento = txtResponsavel.Text;
                    cancelados.ObsCancelamento = txtObsCancelamento.Text;

                    db.cancelados_pacientes.Add(cancelados);

                    solicitacoes_paciente sp = db.solicitacoes_paciente.First(s => s.idPaciente_Solicitacoes == idpaciente);
                    sp.AmSolicitada = 1;

                    if(idpaciente != 0){
                        solicitacoes_ambulancias sa = db.solicitacoes_ambulancias.First(s => s.idSolicitacoesPacientes == idpaciente);
                        sa.SolicitacaoConcluida = 1;
                    }

                    db.SaveChanges();

                    MessageBox.Show("Solicitação cancelada com sucesso !!!");
                    this.Dispose();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
        private void puxarAmbulancias()
        {
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = (from am in db.ambulancia
                             select new
                             {
                                 am.idAmbulancia,
                                 Nome = am.NomeAmbulancia,
                                 Tipo = am.TipoAM,
                                 Desativado = (am.Desativado == 0 ? "Não" : "Sim")
                             }).ToList();

                ListaDeAmbulancias.DataSource = query;
                ListaDeAmbulancias.Refresh();
                ListaDeAmbulancias.Columns[0].Visible = false;
            }
        }
        private void ListaAgendados_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                idPaciente = Convert.ToInt32(ListaAgendados.Rows[e.RowIndex].Cells[0].Value.ToString());
                using (DAHUEEntities db = new DAHUEEntities())
                {
                    var query = (from sp in db.solicitacoes_paciente
                                 join saa in db.solicitacoes_agendamentos
                                 on sp.idReagendamento equals saa.idSolicitacaoAgendamento into saa_sp_join
                                 from saa in saa_sp_join.DefaultIfEmpty()
                                 where sp.idPaciente_Solicitacoes == idPaciente
                                 select new { sp, saa }).FirstOrDefault();

                    id.Text = query.sp.idPaciente_Solicitacoes.ToString();
                    Tipo.Text = query.sp.TipoSolicitacao;
                    DataInicio.Text = query.sp.DtHrdoInicio.ToString();
                    DataHrAgendamento.Text = query.sp.DtHrdoAgendamento.ToString();
                    NomeSolicitante.Text = query.sp.NomeSolicitante;
                    LocalSolicitacao.Text = query.sp.LocalSolicitacao;
                    Telefone.Text = query.sp.Telefone;
                    NomePaciente.Text = query.sp.Paciente;
                    if (query.sp.Genero == "F")
                    {
                        RbFemenino.Checked = true;
                    }
                    else
                    {
                        RbMasculino.Checked = true;
                    }
                    Idade.Text = query.sp.Idade;
                    Diagnostico.Text = query.sp.Diagnostico;
                    MotivoChamado.Text = query.sp.Motivo;
                    TipoMotivoSelecionado.Text = query.sp.SubMotivo;
                    Prioridade.Text = query.sp.Prioridade;
                    Origem.Text = query.sp.Origem;
                    EnderecoOrigem.Text = query.sp.EnderecoOrigem;
                    Destino.Text = query.sp.Destino;
                    EnderecoDestino.Text = query.sp.EnderecoDestino;
                    Obs.Text = query.sp.ObsGerais;
                    if (query.saa != null)
                    {
                        dtHrReagendamento.Text = query.saa.DtHrAgendamento.ToString();
                    }

                }

            }
        }
        private void Aceitar_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(id.Text).Equals(false))
            {
                DialogResult result1 = MessageBox.Show("Deseja aceitar o agendamento ?",
                "Atenção !",
                MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result1 == DialogResult.Yes)
                {

                    using (DAHUEEntities db = new DAHUEEntities())
                    {
                        solicitacoes_paciente sp = db.solicitacoes_paciente.First(p => p.idPaciente_Solicitacoes == idPaciente);
                        sp.Registrado = "Sim";
                        db.SaveChanges();
                    }
                    MessageBox.Show("Solicitação aceita com sucesso !");

                    ClearTextBoxes();
                    ClearComboBox();
                    id.Text = "";
                    dtHrReagendamento.Text = "";
                    RbFemenino.Checked = false;
                    RbMasculino.Checked = false;
                    Obs.Text = "";

                }
            }
            else
            {
                MessageBox.Show("Selecione a solicitação que deseja aceitar !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void OrdemPrioridade_Click(object sender, EventArgs e)
        {
            int zero = 0;
            ListaSolicitacoes.DataSource = "";
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            where sp.AmSolicitada == zero &&
                            sp.Registrado == "Sim" &&
                            sp.Agendamento == "Nao"
                            orderby sp.Prioridade ascending
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                Prioridade = (sp.Prioridade.Contains("P0") ? "P0" : (sp.Prioridade.Contains("P1") ? "P1" : (sp.Prioridade.Contains("P2") ? "P2" : (sp.Prioridade.Contains("P3") ? "P3" : "SP")))),
                                sp.Motivo,
                                sp.Origem,
                                sp.Destino
                            };

                var queryAmbu = query.ToList();
                var contar = query.Count();
                contarComPrioridade = contar.ToString();
                txtTotal1.Text = contar.ToString();
                ListaSolicitacoes.DataSource = queryAmbu;
                ListaSolicitacoes.ClearSelection();

            }
            OrdemPrioridade.Font = new Font(dtagenda.Font, FontStyle.Bold);
            OrdemPaciente.Font = new Font(OrdemDataAgenda.Font, FontStyle.Regular);
            OrdemData.Font = new Font(OrdemPrioridadeAgenda.Font, FontStyle.Regular);
        }
        private void update_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(NomeUnidade.Text))
            {
                MessageBox.Show("Preencher nome da ambulância !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                if (idControleAmbulancia == 0)
                {
                    MessageBox.Show("Selecionar ambulância !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    using (DAHUEEntities db = new DAHUEEntities())
                    {
                        ambulancia am = db.ambulancia.First(ama => ama.idAmbulancia == idControleAmbulancia);
                        am.NomeAmbulancia = NomeUnidade.Text;
                        am.TipoAM = Tipo.Text;
                        if (OpcaoDesativadoNao.Checked == true)
                        {
                            am.Desativado = 0;
                        }
                        else
                        {
                            am.Desativado = 1;
                        }

                        db.SaveChanges();
                        MessageBox.Show("Ambulancia atualizado com sucesso !", "Sucesso");
                    }
                    puxarAmbulancias();

                }

            }
        }
        private void OrdemPrioridadeAgenda_Click(object sender, EventArgs e)
        {
            int zero = 0;
            listaAgendadas.DataSource = "";
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            join saa in db.solicitacoes_agendamentos
                            on sp.idReagendamento equals saa.idSolicitacaoAgendamento into spsaaajoin
                            from saa in spsaaajoin.DefaultIfEmpty()
                            where sp.AmSolicitada == zero &&
                            sp.Agendamento == "Sim" &&
                            sp.Registrado == "Sim"
                            orderby sp.Prioridade descending
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                sp.DtHrdoAgendamento,
                                Data_Reagendada = saa.DtHrAgendamento,
                                Prioridade = (sp.Prioridade.Contains("P0") ? "P0" : (sp.Prioridade.Contains("P1") ? "P1" : (sp.Prioridade.Contains("P2") ? "P2" : (sp.Prioridade.Contains("P3") ? "P3" : "SP")))),
                                sp.Motivo,
                                sp.Origem,
                                sp.Destino,
                                sp.LocalSolicitacao,
                                sp.Telefone,
                                sp.ObsGerais
                            };
                this.listaAgendadas.RowTemplate.MinimumHeight = 22;
                var queryAmbu = query.ToList();
                var contar = query.Count();
                contarAgendadas = contar.ToString();
                txtTotal3.Text = contar.ToString();
                listaAgendadas.DataSource = queryAmbu;
                listaAgendadas.ClearSelection();
            }

            OrdemPrioridadeAgenda.Font = new Font(dtagenda.Font, FontStyle.Bold);
            dtagenda.Font = new Font(dtreagenda.Font, FontStyle.Regular);
            dataFiltroAgenda.Font = new Font(dtreagenda.Font, FontStyle.Regular);
            OrdemNomeAgenda.Font = new Font(OrdemDataAgenda.Font, FontStyle.Regular);
            OrdemDataAgenda.Font = new Font(OrdemPrioridadeAgenda.Font, FontStyle.Regular);
            dtreagenda.Font = new Font(OrdemNomeAgenda.Font, FontStyle.Regular);
            dataReagendamento.Font = new Font(OrdemNomeAgenda.Font, FontStyle.Regular);
        }
        private void listaComPrioridade_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                var querya = (String)null;
                using (DAHUEEntities db = new DAHUEEntities())
                {
                    var query = from am in db.ambulancia
                                where am.idAmbulancia == idAm
                                select am.TipoAM;
                    querya = query.FirstOrDefault();
                }
                idPaciente = Convert.ToInt32(ListaSolicitacoes.Rows[e.RowIndex].Cells["ID"].Value.ToString());
                tipo = ListaSolicitacoes.Rows[e.RowIndex].Cells["Tipo"].Value.ToString();

                if (querya == null)
                {
                    SelecionaAM ST = new SelecionaAM(idPaciente, idAm, 0);
                    this.Dispose();
                    ST.ShowDialog();
                    return;
                }

                if (tipo == "Avancada")
                {
                    if (querya == "BASICO")
                    {
                        MessageBox.Show("Selecionar ambulância do tipo basica ou a solicitação do tipo avançada!");
                        return;
                    }
                }

                if (tipo == "Basica")
                {
                    if (querya == "AVANCADO")
                    {
                        MessageBox.Show("Selecionar ambulância do tipo avançada ou a solicitação do tipo básica!");
                        return;
                    }
                }

                SelecionaAM STi = new SelecionaAM(idPaciente, idAm, 0);
                this.Dispose();
                STi.ShowDialog();
            }
        }
        public void puxarSolicitacoes()
        {
            using (DAHUEEntities db = new DAHUEEntities())
            {
                var query = from sp in db.solicitacoes_paciente
                            where sp.AmSolicitada == 0 &&
                            sp.Agendamento == "Nao" &&
                            sp.Registrado == "Sim"
                            orderby sp.DtHrdoInicio descending
                            select new
                            {
                                ID = sp.idPaciente_Solicitacoes,
                                sp.Paciente,
                                Tipo = sp.TipoSolicitacao,
                                sp.DtHrdoInicio,
                                Prioridade = (sp.Prioridade.Contains("P0") ? "P0" : (sp.Prioridade.Contains("P1") ? "P1" : (sp.Prioridade.Contains("P2") ? "P2" : (sp.Prioridade.Contains("P3") ? "P3" : "SP")))),
                                sp.Motivo,
                                sp.Origem,
                                sp.Destino
                            };

                var queryAmbu = query.ToList();
                var contar = query.Count();
                txtTotal1.Text = contar.ToString();
                contarComPrioridade = contar.ToString();
                ListaSolicitacoes.DataSource = queryAmbu;
                ListaSolicitacoes.ClearSelection();

                ListaSolicitacoes.Columns[0].HeaderText = "ID";
            }
        }
        private void nova_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(NomeUnidade.Text))
            {
                MessageBox.Show("Preencher nome da ambulância !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                using (DAHUEEntities db = new DAHUEEntities())
                {
                    var ambulanciaPesquisa = (from am in db.ambulancia
                                              where am.NomeAmbulancia == NomeUnidade.Text
                                              select am.idAmbulancia).Count();
                    if (ambulanciaPesquisa >= 1)
                    {
                        MessageBox.Show("Ambulância ja existe !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }

                using (DAHUEEntities db = new DAHUEEntities())
                {
                    ambulancia am = new ambulancia();
                    am.NomeAmbulancia = NomeUnidade.Text;
                    am.TipoAM = Tipo.Text;
                    if (OpcaoDesativadoNao.Checked == true)
                    {
                        am.Desativado = 1;
                    }
                    else
                    {
                        am.Desativado = 0;
                    }

                    db.ambulancia.Add(am);
                    db.SaveChanges();
                    MessageBox.Show("Ambulancia salva com sucesso !", "Sucesso");
                }
                puxarAmbulancias();

            }
        }