internal void registraAgenda(Medico medicoSeleccionado, Especialidad especialidadSeleccionada, Dictionary <System.Windows.Forms.NumericUpDown, System.Windows.Forms.NumericUpDown> horasDesde, Dictionary <System.Windows.Forms.NumericUpDown, System.Windows.Forms.NumericUpDown> horasHasta, String fechaDesde, String fechaHasta) { this.obtenerDiasSeleccionados(horasDesde); ProfesionalManager pm = new ProfesionalManager(); Dictionary <KeyValuePair <NumericUpDown, NumericUpDown>, KeyValuePair <NumericUpDown, NumericUpDown> > rangoAtencion = this.obtenerRangoAtencion(horasDesde, horasHasta); Decimal horasTrabajadas = pm.getHorasTrabajadas(medicoSeleccionado, fechaDesde, fechaHasta); Decimal horasAInsertar = 0; foreach (KeyValuePair <KeyValuePair <NumericUpDown, NumericUpDown>, KeyValuePair <NumericUpDown, NumericUpDown> > rango in rangoAtencion) { Decimal hd = ((rango.Key.Key.Value) * 60); Decimal md = (rango.Key.Value.Value); Decimal hdmd = hd + md; Decimal hh = ((rango.Value.Key.Value) * 60); Decimal mh = (rango.Value.Value.Value); Decimal hhmh = hh + mh; horasAInsertar += (Decimal.Divide((hhmh - hdmd), 60)); } Decimal horasTotales = horasTrabajadas + horasAInsertar; if (horasTotales <= 48) { foreach (KeyValuePair <KeyValuePair <NumericUpDown, NumericUpDown>, KeyValuePair <NumericUpDown, NumericUpDown> > rango in rangoAtencion) { pm.registrarRangoAtencion(medicoSeleccionado, especialidadSeleccionada, rango.Key, rango.Value, fechaDesde, fechaHasta); } } else { Exception ex = new Exception("Las horas trabajadas no pueden superar las 48 hs semanales"); throw ex; } }
internal List <Especialidad> buscarEspecialidadesMedico(Medico medico) { List <Especialidad> especialidades = new List <Especialidad>(); try { ParametroParaSP parametro4 = new ParametroParaSP("matricula", SqlDbType.Decimal, medico.matricula); List <ParametroParaSP> parametros = new List <ParametroParaSP>(); parametros.Add(parametro4); this.openDB(); SqlCommand procedure = this.createCallableProcedure("BETTER_CALL_JUAN.Procedure_Get_Especialidades_Medico", parametros); SqlDataReader sqlReader = procedure.ExecuteReader(); if (sqlReader.HasRows) { while (sqlReader.Read()) { Especialidad especialidad = new Especialidad(); especialidad.codigo = sqlReader.GetDecimal(0); especialidad.descripcion = sqlReader.GetString(1); especialidades.Add(especialidad); } } } catch (Exception e) { especialidades = null; } finally { this.closeDB(); } return(especialidades); }
internal void buscarTurnosParaFechaActual(Medico medico, Especialidad especialidad) { ConsultaManager managerConsultas = new ConsultaManager(); List <Turno> turnos = managerConsultas.getTurnosParaFechaDeHoy(medico, especialidad); if (turnos != null) { if (turnos.Count == 0) { this.form.showErrorMessage("No se encontraron turnos para la fecha."); this.form.Close(); } else { this.form.llenarTablaConTurnos(turnos); this.form.Show(); } } else { this.form.showErrorMessage("Ocurrio un error al buscar los horarios."); } }
internal bool pedirTurnoAfiliado(Medico medico, Especialidad especialidad, string fechaElegida, string horarioElegido) { bool turnoPedido = true; try { decimal usuario_id = UsuarioConfiguracion.getInstance().getUsuarioId(); DateTime fecha_hora_turno = DateTime.Parse(fechaElegida) + TimeSpan.Parse(horarioElegido); ParametroParaSP parametro1 = new ParametroParaSP("usuario_id_afiliado", SqlDbType.Decimal, usuario_id); ParametroParaSP parametro2 = new ParametroParaSP("medico_id", SqlDbType.Decimal, medico.matricula); ParametroParaSP parametro3 = new ParametroParaSP("especialidad_codigo", SqlDbType.Decimal, especialidad.codigo); ParametroParaSP parametro4 = new ParametroParaSP("fecha_hora_turno", SqlDbType.DateTime, fecha_hora_turno); List <ParametroParaSP> parametros = new List <ParametroParaSP>(); parametros.Add(parametro1); parametros.Add(parametro2); parametros.Add(parametro3); parametros.Add(parametro4); this.openDB(); SqlCommand procedure = this.createCallableProcedure("BETTER_CALL_JUAN.Procedure_Pedir_Turno_Con_Usuario_Id", parametros); procedure.ExecuteNonQuery(); } catch (Exception e) { turnoPedido = false; } finally { this.closeDB(); } return(turnoPedido); }
internal List <Turno> buscarTurnosConFiltros(DateTime fechaBuscar, string nombreMedico, string apellidoMedico, string nombrePaciente, string apellidoPaciente) { List <Turno> turnos = new List <Turno>(); try { ParametroParaSP parametro1 = new ParametroParaSP("fecha_a_buscar", SqlDbType.DateTime, fechaBuscar); ParametroParaSP parametro2 = new ParametroParaSP("nombre_medico", SqlDbType.VarChar, nombreMedico); ParametroParaSP parametro3 = new ParametroParaSP("apellido_medico", SqlDbType.VarChar, apellidoMedico); ParametroParaSP parametro4 = new ParametroParaSP("nombre_paciente", SqlDbType.VarChar, nombrePaciente); ParametroParaSP parametro5 = new ParametroParaSP("apellido_paciente", SqlDbType.VarChar, apellidoPaciente); List <ParametroParaSP> parametros = new List <ParametroParaSP>(); parametros.Add(parametro1); parametros.Add(parametro2); parametros.Add(parametro3); parametros.Add(parametro4); parametros.Add(parametro5); this.openDB(); SqlCommand procedure = this.createCallableProcedure("BETTER_CALL_JUAN.Get_Turnos_Con_Filtros", parametros); SqlDataReader sqlReader = procedure.ExecuteReader(); if (sqlReader.HasRows) { while (sqlReader.Read()) { Turno turno = new Turno(); turno.numero = sqlReader.GetDecimal(0); turno.fechaHora = sqlReader.GetDateTime(1); turno.medicoEspecialidadId = sqlReader.GetDecimal(2); turno.pacienteId = sqlReader.GetDecimal(3); Medico medico = new Medico(); medico.apellido = sqlReader.GetString(4); medico.nombre = sqlReader.GetString(5); turno.medico = medico; Especialidad especialidad = new Especialidad(); especialidad.descripcion = sqlReader.GetString(6); turno.especialidad = especialidad; Paciente paciente = new Paciente(); paciente.nombre = sqlReader.GetString(7); paciente.apellido = sqlReader.GetString(8); paciente.tipoDoc = sqlReader.GetString(9); paciente.nroDoc = sqlReader.GetDecimal(10); turno.paciente = paciente; turnos.Add(turno); } } } catch (Exception e) { turnos = null; } finally { this.closeDB(); } return(turnos); }
internal void mostrarHorarios(List <CheckBox> CBLDias, Medico medico, Especialidad especialidad) { especialidadSeleccionada = especialidad; medicoSeleccionado = medico; this.horasDesde = new Dictionary <NumericUpDown, NumericUpDown>(); this.horasHasta = new Dictionary <NumericUpDown, NumericUpDown>(); int ycoords = 0; int xcoords = 3; this.fechaDesde.Value = ConfiguracionApp.getInstance().fechaActual; this.fechaHasta.Value = ConfiguracionApp.getInstance().fechaActual; CBLDias.ForEach(cbdia => { if (cbdia.Checked) { Label dia = new Label(); dia.Width = 70; dia.Text = cbdia.Text; dia.Location = new Point(xcoords, ycoords); dia.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); diasPanel.Controls.Add(dia); xcoords += 96; NumericUpDown horaDesde = new NumericUpDown(); horaDesde.Name = dia.Text; horaDesde.Maximum = 23; horaDesde.Minimum = 0; horaDesde.Width = 40; horaDesde.Location = new Point(xcoords, ycoords); horaDesde.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); diasPanel.Controls.Add(horaDesde); xcoords += 80; NumericUpDown minutosDesde = new NumericUpDown(); minutosDesde.Name = dia.Text; minutosDesde.Maximum = 59; minutosDesde.Minimum = 0; minutosDesde.Width = 40; minutosDesde.Location = new Point(xcoords, ycoords); minutosDesde.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); diasPanel.Controls.Add(minutosDesde); xcoords += 73; NumericUpDown horaHasta = new NumericUpDown(); horaHasta.Name = dia.Text; horaHasta.Maximum = 23; horaHasta.Minimum = 0; horaHasta.Width = 40; horaHasta.Location = new Point(xcoords, ycoords); horaHasta.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); diasPanel.Controls.Add(horaHasta); xcoords += 70; NumericUpDown minutosHasta = new NumericUpDown(); minutosHasta.Name = dia.Text; minutosHasta.Maximum = 59; minutosHasta.Minimum = 0; minutosHasta.Width = 40; minutosHasta.Location = new Point(xcoords, ycoords); minutosHasta.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); diasPanel.Controls.Add(minutosHasta); ycoords += 25; this.horasDesde.Add(horaDesde, minutosDesde); this.horasHasta.Add(horaHasta, minutosHasta); xcoords = 3; } }); this.Show(); }