public Medicos(string username, string pass, string nome, string horaentrada, string horasaida, int niss, Especialidades especialidade) : base(username, pass) { Nome = nome; HoraEntrada = horaentrada; HoraSaida = horasaida; Niss = niss; Especialidade = especialidade; }
/// <summary> /// Botão de Selecionar Especialidade. Instância um objeto da class Especialidades, com o nome da especialidade selecionada. /// Se o utilizador deseja selecioná-la para inserção do médico, envia o objeto para o form de Adicionar Médico, através do método GetFormSelecionarEspecialidade; /// </summary> private void BotaoSelecionarEspecialidade(object sender, EventArgs e) { if (lvListaEspecialidades.SelectedItems.Count > 0) { string especialidadeSelecionada = lvListaEspecialidades.SelectedItems[0].SubItems[1].Text.ToString(); Especialidades especialidade = new Especialidades(especialidadeSelecionada); //Mensagem de Confirmação DialogResult confirmacaoAdicionar = MessageBox.Show("Tem a certeza qe deseja selecionar a especialidade '" + especialidadeSelecionada + "' ?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (confirmacaoAdicionar == DialogResult.Yes) { formAdicionarMedico.GetFormSelecionarEspecialidade(especialidade); formAdicionarMedico.Show(); Close(); } } }
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); } }
/// <summary> /// Método para receber a especialidade selecionada, no form de Selecionar Especialidade. /// </summary> /// <param name="especialidade">Especialidade Selecionada</param> public void GetFormSelecionarEspecialidade(Especialidades especialidade) { tbEspecialidade.Text = especialidade.Nome; especialidadeSelecionada = especialidade; }