private void CargarPacientes() { // Obtener Pacientes desde la base de datos. // Siempre retorna una coleccion de objetos. Business.Entities.Pacientes oPacientes; Business.Logic.Paciente oPacienteNegocio = new Business.Logic.Paciente(); // Estoy en la interfaz de usuario // Capturar siempre el error si ocurre try { lblErrores.Text = ""; lblErrores.Visible = false; // Le pido a la capa de negocios los pacientes existentes oPacientes = oPacienteNegocio.Listar(); // Agrega datos y realiza Databinding al listado de Pacientes grdPacientes.DataSource = oPacientes; grdPacientes.DataBind(); } catch (Exception ex) { // Si hay errores, mostrar: lblErrores.Text = ex.Message; lblErrores.Visible = true; } finally { // Libero memoria de objetos oPacientes = null; oPacientes = null; } }
/// <summary> /// Guarda la información de un Paciente /// </summary> private void GuardarPaciente() { string ErrorDeValidacion = ErrorDeValidacionPaciente(); if (ErrorDeValidacion == null) { //llenamos oPaciente con la información ingresada/modificada oPaciente.Nombre = txtNombre.Text.Trim(); oPaciente.Apellido = txtApellido.Text.Trim(); oPaciente.TipoDoc = (Business.Entities.Paciente.TiposDoc)cbxTipoDoc.SelectedItem; oPaciente.NumeroDoc = Convert.ToInt32(txtNumeroDoc.Text); //oPaciente.FechaNac = dtpFechaNac.Value; oPaciente.GrupoSanguineo = (Business.Entities.Paciente.GruposSanguineos)cbxGrupoSanguineo.SelectedItem; oPaciente.Factor = (Business.Entities.Paciente.FactoresSanguineos)cbxFactorSanguineo.SelectedItem; oPaciente.Domicilio = txtDomicilio.Text.Trim(); oPaciente.Telefono = txtTelefono.Text.Trim(); oPaciente.Celular = txtCelular.Text.Trim(); oPaciente.Email = txtEmail.Text.Trim(); oPaciente.Problemas = txtProblemas.Text.Trim(); oPaciente.Notas = txtNotas.Text.Trim(); //las obras sociales ya se encuentran en opaciente.afiliados, se agregan a la colección al cargarse/agregarse. Business.Logic.Paciente oPacienteNegocio = new Business.Logic.Paciente(); //Actualizamos la base de datos. Si es un paciente nuevo, devuelve el Id del Paciente. oPaciente.Id = oPacienteNegocio.Actualizar(oPaciente); //si el paciente es afiliado de 1 o mas obras sociales: if (oPaciente.Afiliados != null && oPaciente.Afiliados.Count > 0) { //ahora utlizaremos ei Id del Paciente para actualizar los Afiliados del mismo. Business.Logic.Afiliado oAfiliadoNegocio = new Business.Logic.Afiliado(); oAfiliadoNegocio.Actualizar((int)oPaciente.Id, oPaciente.Afiliados); } // Recargar listado de Pacientes CargarPacientes(); SeHanRealizadoCambios = false; } else { //muestra el error: MessageBox.Show(null, "Atención: El campo '" + ErrorDeValidacion + "' no puede ser nulo", "Error al Guardar el Paciente", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// Elimina un Paciente /// </summary> private void EliminarPaciente() { // Antes de eliminar verifica que exista algun elemento seleccionado if (AlgunPacienteSelecionado()) { // Antes de eliminar preguntamos al usuario if (MessageBox.Show( "Esta seguro que desea eliminar el Paciente seleccionado? También se eliminarán todas sus Consultas!", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { // Instancio la Clase Pacientes de la capa de Negocios Business.Logic.Paciente oPacienteNegocio = new Business.Logic.Paciente(); try { //Elimino el Paciente // (el Id del Paciente a eliminar es el 1º de la coleccion de seleccionados) oPacienteNegocio.Borrar(Convert.ToInt32(lstPacientes.SelectedItems[0].Text)); //Mensaje de exito //MessageBox.Show("El paciente ha sido eliminado!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); // Recargar listado de Pacientes CargarPacientes(); } catch (Exception ex) { // Mensaje de error MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { // Libero recursos oPacienteNegocio = null; } } } else { // Si no se ha seleccionado un Paciente: MessageBox.Show("Debe seleccionar el Paciente que desea eliminar.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Recupera los "Pacientes" de la Base de Datos (y llena el control) /// </summary> private void CargarPacientes() { string ObrasSocialesTexto; //Instancio la clase Paciente de la capa de Negocios Business.Logic.Paciente oPacienteNegocio = new Business.Logic.Paciente(); //try //{ //Recupero todos los Pacientes y los almaceno en el objeto Paciente oPacientes = oPacienteNegocio.Listar(); // No actualizamos el control hasta que finalice la operación (carga mas rapido) lstPacientes.BeginUpdate(); // Eliminamos los datos de la lista lstPacientes.Items.Clear(); if (oPacientes != null && oPacientes.Count > 0) { //Agrego los datos de cada paciente a la lista de Pacientes foreach (Business.Entities.Paciente oPacienteTmp in oPacientes) { ObrasSocialesTexto = ""; ListViewItem oItem; oItem = lstPacientes.Items.Add(oPacienteTmp.Id.ToString()); oItem.SubItems.Add(oPacienteTmp.TipoDoc.ToString() + ": " + oPacienteTmp.NumeroDoc.ToString()); oItem.SubItems.Add(oPacienteTmp.Apellido); oItem.SubItems.Add(oPacienteTmp.Nombre); //recupero las obras sociales del paciente if (oPacienteTmp.Afiliados != null && oPacienteTmp.Afiliados.Count > 0) { foreach (Business.Entities.Afiliado oAfiliado in oPacienteTmp.Afiliados) { ObrasSocialesTexto += oAfiliado.ObraSocial.Nombre + " / "; } //elimina el ultimo "/" de la lista de obras sociales oItem.SubItems.Add(ObrasSocialesTexto.Substring(0, ObrasSocialesTexto.Length - 3)); } else oItem.SubItems.Add("(no posee)"); oItem.SubItems.Add(oPacienteTmp.Telefono.ToString() + (Utilidades.Herramientas.esVacio(oPacienteTmp.Celular.ToString()) ? "" : oPacienteTmp.Celular.ToString())); //oItem.SubItems.Add(oPaciente.Celular); oItem.SubItems.Add(oPacienteTmp.Domicilio); //oItem.SubItems.Add(oPaciente.Email); } } else lstPacientes.Items.Clear(); // Le indico a listview que puede renderizar el control lstPacientes.EndUpdate(); /*} catch (Exception ex) { // Si hay errores, mostrar: MessageBox.Show(ex.Message, this.Text + ": Error al Cargar Pacientes", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { // Libero memoria de objetos oPacientes = null; }//*/ }
// /////////////////////////////////////////////////////////////////////////////// #region Metodos asociados a la Carga de Datos /// <summary> /// Recupera los "Pacientes" de la Base de Datos (y llena el control) /// </summary> private void CargarPacientes() { string ObrasSocialesTexto; //Instancio la clase Paciente de la capa de Negocios Business.Logic.Paciente oPacienteNegocio = new Business.Logic.Paciente(); //try //{ //Recupero todos los Pacientes y los almaceno en el objeto Paciente oPacientes = oPacienteNegocio.Listar(); // No actualizamos el control hasta que finalice la operación (carga mas rapido) lstPacientes.BeginUpdate(); // Eliminamos los datos de la lista lstPacientes.Items.Clear(); if (oPacientes != null && oPacientes.Count > 0) { //Agrego los datos de cada paciente a la lista de Pacientes foreach (Business.Entities.Paciente oPacienteTmp in oPacientes) { ObrasSocialesTexto = ""; ListViewItem oItem; oItem = lstPacientes.Items.Add(oPacienteTmp.Id.ToString()); oItem.SubItems.Add(oPacienteTmp.TipoDoc.ToString() + ": " + oPacienteTmp.NumeroDoc.ToString()); oItem.SubItems.Add(oPacienteTmp.Apellido); oItem.SubItems.Add(oPacienteTmp.Nombre); //recupero las obras sociales del paciente if (oPacienteTmp.Afiliados != null && oPacienteTmp.Afiliados.Count > 0) { foreach (Business.Entities.Afiliado oAfiliado in oPacienteTmp.Afiliados) { ObrasSocialesTexto += oAfiliado.ObraSocial.Nombre + " / "; } //elimina el ultimo "/" de la lista de obras sociales oItem.SubItems.Add(ObrasSocialesTexto.Substring(0, ObrasSocialesTexto.Length - 3)); } else { oItem.SubItems.Add("(no posee)"); } oItem.SubItems.Add(oPacienteTmp.Telefono.ToString() + (Utilidades.Herramientas.esVacio(oPacienteTmp.Celular.ToString()) ? "" : oPacienteTmp.Celular.ToString())); //oItem.SubItems.Add(oPaciente.Celular); oItem.SubItems.Add(oPacienteTmp.Domicilio); //oItem.SubItems.Add(oPaciente.Email); } } else { lstPacientes.Items.Clear(); } // Le indico a listview que puede renderizar el control lstPacientes.EndUpdate(); /*} * catch (Exception ex) * { * // Si hay errores, mostrar: * MessageBox.Show(ex.Message, this.Text + ": Error al Cargar Pacientes", MessageBoxButtons.OK, MessageBoxIcon.Error); * } * finally * { * // Libero memoria de objetos * oPacientes = null; * }//*/ }