示例#1
0
        public bool AdicionarMarcacao(string nomeP, DateTime data, string hora, string nomeM)
        {
            bool result;

            try
            {
                Pacientes paciente = registosPacientes.Where(p => p.Nome.Equals(nomeP)).First();

                //--------------------
                Medicos medico = registosMedicos.Where(m => m.Nome.Equals(nomeM)).First();

                Marcacao marcacao = new Marcacao(paciente, data, hora, medico, true);

                registosMarcacoes.Add(marcacao);

                //BD

                connect.Open();

                SqlCommand query = new SqlCommand();
                int        results;
                string     queryString;

                queryString = "INSERT INTO marcacao (data, hora, id_paciente, id_medico)"
                              + " VALUES (@value1, @value2, @value3, @value4);";

                query.CommandText = queryString;
                query.Parameters.AddWithValue("@value1", data);
                query.Parameters.AddWithValue("@value2", hora);
                query.Parameters.AddWithValue("@value3", registosPacientes.IndexOf(paciente) + 1);
                query.Parameters.AddWithValue("@value4", registosMedicos.IndexOf(medico) + 1);
                query.Connection = connect;

                results = query.ExecuteNonQuery();


                connect.Close();
                //---------------------
                result = true;
            }
            catch (Exception)
            {
                result = false;
                throw new Exception("Médico ou Paciente não registados");
            }


            return(result);
        }
示例#2
0
        private void FormMenu_Load(object sender, EventArgs e)
        {
            connect.Open();

            DataSet       dados = new DataSet();
            SqlCommand    query = new SqlCommand();
            SqlDataReader results;
            string        queryString;

            //Carregar Especialidades
            queryString       = "SELECT nome FROM especialidade";
            query.CommandText = queryString;
            query.Connection  = connect;

            results = query.ExecuteReader();

            if (results.HasRows)
            {
                while (results.Read())
                {
                    Especialidades especialidade = new Especialidades(results["nome"].ToString());
                    registosEspecialidades.Add(especialidade);
                }
            }

            results.Close();
            //----------------------------------------

            //Carregar Pacientes

            queryString = "SELECT nome, telefone, niss"
                          + " FROM paciente";
            query.CommandText = queryString;
            query.Connection  = connect;

            results = query.ExecuteReader();

            if (results.HasRows)
            {
                while (results.Read())
                {
                    Pacientes paciente = new Pacientes(
                        results[0].ToString(),
                        Convert.ToInt32(results[1]),
                        Convert.ToInt32(results[2])
                        );

                    registosPacientes.Add(paciente);
                }
            }

            results.Close();
            //----------------------------------------

            //Carregar Médicos
            queryString = "SELECT username, password, medico.nome, medico.hora_entrada, medico.hora_saida, medico.niss, especialidade.nome"
                          + " FROM utilizador"
                          + " JOIN medico ON utilizador.Id = medico.id_utilizador"
                          + " JOIN especialidade ON especialidade.Id = medico.id_especialidade";
            query.CommandText = queryString;
            query.Connection  = connect;

            results = query.ExecuteReader();

            if (results.HasRows)
            {
                while (results.Read())
                {
                    Especialidades especialidade = registosEspecialidades
                                                   .Where(esp => esp.Nome.Equals(results[6].ToString())).First();

                    Medicos medico = new Medicos(
                        results[0].ToString(),
                        results[1].ToString(),
                        results[2].ToString(),
                        results[3].ToString(),
                        results[4].ToString(),
                        Convert.ToInt32(results[5]),
                        especialidade
                        );
                    registosMedicos.Add(medico);
                }
            }

            results.Close();
            //----------------------------------------

            //Carregar marcações

            queryString = "SELECT paciente.nome, data, hora, medico.nome"
                          + " FROM marcacao"
                          + " JOIN medico ON marcacao.id_medico = medico.id_utilizador"
                          + " JOIN paciente ON marcacao.id_paciente = paciente.id";
            query.CommandText = queryString;
            query.Connection  = connect;

            results = query.ExecuteReader();

            if (results.HasRows)
            {
                while (results.Read())
                {
                    Pacientes paciente = registosPacientes.Where(p => p.Nome.Equals(results[0].ToString())).First();
                    Medicos   medico   = registosMedicos.Where(m => m.Nome.Equals(results[3].ToString())).First();

                    Marcacao marcacao = new Marcacao(
                        paciente,
                        Convert.ToDateTime(results[1].ToString()),
                        results[2].ToString(),
                        medico,
                        false
                        );

                    registosMarcacoes.Add(marcacao);
                }
            }

            results.Close();
            //----------------------------------------

            connect.Close();
        }
        /// <summary>
        /// Botão de Adicionar Médico. Verifica se os campos estão vazios, e
        /// </summary>
        private void BotaoAdicionarMedico(object sender, EventArgs e)
        {
            if (tbNome.Text.Length > 0 && tbNSS.Text.Length > 0)
            {
                if (tbEspecialidade.Text.Length > 0)
                {
                    int    nissMedico;
                    string nissForm = tbNSS.Text.Trim();

                    //Converte o NISS inserido para um inteiro. Se não conter caratéres ou caratéres especiais, devolve um boolean de tipo true.
                    if (Int32.TryParse(nissForm, out nissMedico))
                    {
                        //Se a hora de entrada inserida é antes da hora de saida inserida, devolve true.
                        if (dtpHoraEntrada.Value.CompareTo(dtpHoraSaida.Value) < 0)
                        {
                            string         usernameMedico      = tbUsername.Text.Trim();
                            string         passwordMedico      = mtbPassword.Text;
                            string         nomeMedico          = tbNome.Text.Trim();
                            string         horaEntradaMedico   = dtpHoraEntrada.Text;
                            string         horaSaidaMedico     = dtpHoraSaida.Text;
                            Especialidades especialidadeMedico = especialidadeSelecionada;

                            //Mensagem de Confirmação
                            DialogResult confirmacaoAdicionar = MessageBox.Show("Tem a certeza qe deseja inserir o médico '" + nomeMedico + "' ?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                            if (confirmacaoAdicionar == DialogResult.Yes)
                            {
                                //Se a especialidade selecionada é do tipo Especialidades. (Redundante, usado apenas para validar o valor de retorno do form de Selecionar Especialidade)
                                if (especialidadeMedico is Especialidades)
                                {
                                    Medicos medico = new Medicos(usernameMedico, passwordMedico, nomeMedico, horaEntradaMedico, horaSaidaMedico, nissMedico, especialidadeMedico);

                                    try
                                    {
                                        if (medico.VerificarDadosMedico())
                                        {
                                            if (medico.Adicionar())
                                            {
                                                MessageBox.Show("Médico inserido com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                formGestaoMedicos.RefreshTabelaMedicos();
                                                formGestaoMedicos.Show();
                                                Close();
                                            }
                                        }

                                        else
                                        {
                                            MessageBox.Show("O médico inserido já existe.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                    }

                                    catch (Exception)
                                    {
                                        MessageBox.Show("Ocorreu um erro na inserção do médico.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                            }
                        }

                        else
                        {
                            MessageBox.Show("O horário escolhido é inválido.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }

                else
                {
                    MessageBox.Show("Não preencheu a especialidade do médico a inserir", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            else
            {
                MessageBox.Show("Preencha todos os dados para a inserção do médico", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#4
0
        public Marcacao(Pacientes paciente, DateTime dataConsulta, string horaConsulta, Medicos medico, bool novo)
        {
            if (novo)
            {
                Paciente = paciente;

                if (ValidaData(dataConsulta))
                {
                    Data = dataConsulta.ToShortDateString();
                }
                else
                {
                    throw new Exception("Data inválida");
                }

                if (ValidaHora(horaConsulta))
                {
                    Hora = horaConsulta;
                }
                else
                {
                    throw new Exception("Hora inválida");
                }

                Medico = medico;
            }
            else
            {
                Paciente = paciente;
                Data     = dataConsulta.ToShortDateString();
                Hora     = horaConsulta;
                Medico   = medico;
            }
        }