public static Equipo crearCo(string _marca, string _modelo, string _numSerie, string _alias, int _fuente, int _tipoDeHaz, double zref, double lado, double PDDzref, double TMRzref, string _institucion) { string auxEtiqueta = ""; if (_alias != "") { auxEtiqueta += " (" + _alias + ")"; } return(new Equipo() { Marca = _marca, Modelo = _modelo, NumSerie = _numSerie, Alias = _alias, Fuente = _fuente, TipoDeHaz = _tipoDeHaz, energiaFot = EnergiaFotones.energiaCo(zref, lado, PDDzref, TMRzref), EnergiasFotones = "Co", energiaElec = new ListaElectrones(), EnergiasElectrones = "", Institucion = _institucion, Etiqueta = _marca + " " + _modelo + " " + auxEtiqueta, Nota = "", }); }
public static void guardar(EnergiaFotones _nuevo, bool edita, DataGridView DGV) { if (edita) { string IDvieja = ((EnergiaFotones)DGV.SelectedRows[0].DataBoundItem).ID; var auxlista = lista(DGV); int indice = DGV.SelectedRows[0].Index; bool auxPredet = auxlista[indice].EsPredet; auxlista.RemoveAt(indice); _nuevo.ID = IDvieja; auxlista.Insert(indice, _nuevo); auxlista[indice].EsPredet = auxPredet; DGV.DataSource = auxlista; DGV.ClearSelection(); DGV.Rows[indice].Selected = true; edita = false; } else { if (DGV.RowCount == 0) { _nuevo.EsPredet = true; } var auxlista = lista(DGV); _nuevo.ID = _nuevo.Etiqueta; auxlista.Add(_nuevo); DGV.DataSource = auxlista; } darFormatoADGV(DGV); }
public static void editarAle(ComboBox Marca, TextBox Modelo, TextBox NumSerie, TextBox Alias, ComboBox Institucion, Panel Fuente, Panel TipoHaz, DataGridView DGVEnFot, DataGridView DGVEnElec, DataGridView DGVEquipo) { Equipo aux = (Equipo)DGVEquipo.SelectedRows[0].DataBoundItem; Marca.Text = aux.Marca; Modelo.Text = aux.Modelo; NumSerie.Text = aux.NumSerie; Alias.Text = aux.Alias; Institucion.Text = aux.Institucion; Fuente.Controls.OfType <RadioButton>().ElementAt(1).Checked = false; //Control ALE Fuente.Controls.OfType <RadioButton>().ElementAt(0).Checked = true; //Control Co if (aux.TipoDeHaz == 1) { TipoHaz.Controls.OfType <RadioButton>().ElementAt(1).Checked = true; //pulsado TipoHaz.Controls.OfType <RadioButton>().ElementAt(0).Checked = false; //pulsado y barrido } else if (aux.TipoDeHaz == 2) { TipoHaz.Controls.OfType <RadioButton>().ElementAt(1).Checked = false; TipoHaz.Controls.OfType <RadioButton>().ElementAt(0).Checked = true; } DGVEnFot.DataSource = aux.energiaFot; EnergiaFotones.darFormatoADGV(DGVEnFot); DGVEnElec.DataSource = aux.energiaElec; EnergiaElectrones.darFormatoADGV(DGVEnElec); }
public static BindingList <CalibracionFot> lista(Equipo equipo, EnergiaFotones energia, int DFSoISO) { var filtrada = IO.readJsonList <CalibracionFot>(file).Where(c => c.Equipo.Equals(equipo) && c.Energia.Equals(energia) && c.DFSoISO == DFSoISO).ToList(); filtrada.Sort((x, y) => DateTime.Compare(x.Fecha, y.Fecha)); return(new BindingList <CalibracionFot>(filtrada)); }
public static void editar(TextBox Energia, TextBox Zref, TextBox Lado, TextBox PDDZref, TextBox TMRZref, DataGridView DGV) { EnergiaFotones aux = lista(DGV)[DGV.SelectedRows[0].Index]; Energia.Text = aux.Energia.ToString(); Zref.Text = Calcular.stringNaN(aux.ZRefFot); Lado.Text = Calcular.stringNaN(aux.LadoCampo); PDDZref.Text = Calcular.stringNaN(aux.PddZrefFot); TMRZref.Text = Calcular.stringNaN(aux.TmrZrefFot); }
/* private void BT_EqIraCal_Click(object sender, EventArgs e) * { * if (DGV_Equipo.SelectedRows.Count == 1) * { * Equipo seleccionado = Equipo.lista()[DGV_Equipo.SelectedRows[0].Index]; * CB_CaliEquipos.SelectedIndex = CB_CaliEquipos.FindStringExact(aux); * actualizarComboBoxCaliFotones(); * panel = traerPanel(panel, 1, Panel_CalFot, Bt_CalFot, Panel_Botones); * BT_EqIraCal.Text = "Seleccionar e ir a calibración"; * } * * }*/ #endregion #region Equipos EnergiaFotonesBotones private void BT_EnFotGuardar_Click(object sender, EventArgs e) { DGV_EnFot.Visible = true; EnergiaFotones.guardar(EnergiaFotones.crear(Convert.ToDouble(TB_EnFotEn.Text), Calcular.doubleNaN(TB_EnFotLado), Calcular.doubleNaN(TB_EnFotZref), Calcular.doubleNaN(TB_EnFotPDD), Calcular.doubleNaN(TB_EnFotTMR)), editaEnergiaFot, DGV_EnFot); limpiarRegistro(Panel_EnFotEquipo); TB_EnFotLado.Text = Configuracion.ladoCampoPredetFot.ToString(); TB_EnFotEn.Focus(); // para que vuelva a energía para cargar uno nuevo if (RB_FuenteCo.Checked == true && DGV_EnFot.ColumnCount > 0) { GB_EquiposEnergias.Enabled = false; } DGV_EnFot.Enabled = true; }
//linea base public static bool hayReferencia(Equipo equipo, EnergiaFotones energia, int DFSoISO) { bool hayRef = false; foreach (CalibracionFot cali in lista()) { if (cali.Equipo.Equals(equipo) && cali.Energia.Equals(energia) && cali.DFSoISO.Equals(DFSoISO) && cali.EsReferencia) { hayRef = true; break; } } return(hayRef); }
public static CalibracionFot obtenerCaliReferencia(Equipo equipo, EnergiaFotones energia, int DFSoISO) { CalibracionFot caliLB = new CalibracionFot(); foreach (CalibracionFot cali in lista()) { if (cali.Equipo.Equals(equipo) && cali.Energia.Equals(energia) && cali.DFSoISO.Equals(DFSoISO) && cali.EsReferencia) { caliLB = cali; break; } } return(caliLB); }
public static Equipo crearAle(string _marca, string _modelo, string _numSerie, string _alias, int _fuente, int _tipoDeHaz, DataGridView DGVFot, DataGridView DGVElec, string _institucion) //EsPredet inicia como false siempre { string auxEnergiasFot = ""; string auxEnergiasElec = ""; ListaFotones listaF = new ListaFotones(); if (EnergiaFotones.lista(DGVFot).Count > 0) { listaF = EnergiaFotones.lista(DGVFot); } ListaElectrones listaE = new ListaElectrones(); if (EnergiaElectrones.lista(DGVElec).Count > 0) { listaE = EnergiaElectrones.lista(DGVElec); } foreach (var energia in EnergiaFotones.lista(DGVFot)) { auxEnergiasFot += energia.Energia + " "; } foreach (var energia in EnergiaElectrones.lista(DGVElec)) { auxEnergiasElec += energia.Energia + " "; } string auxEtiqueta = ""; if (_alias != "") { auxEtiqueta += " (" + _alias + ")"; } return(new Equipo() { Marca = _marca, Modelo = _modelo, NumSerie = _numSerie, Alias = _alias, Fuente = _fuente, TipoDeHaz = _tipoDeHaz, energiaFot = listaF, EnergiasFotones = auxEnergiasFot, energiaElec = listaE, EnergiasElectrones = auxEnergiasElec, Institucion = _institucion, Etiqueta = _marca + " " + _modelo + " " + auxEtiqueta, Nota = "", }); }
private void InicializarComboBoxEnergias(bool guardarSeleccion = false) { EnergiaFotones energiaASeleccionar = new EnergiaFotones(); EnergiaFotones energiaPredet = new EnergiaFotones(); if (guardarSeleccion) { energiaASeleccionar = (EnergiaFotones)CB_CaliEnergias.SelectedItem; } CB_CaliEnergias.Items.Clear(); if (CB_CaliEquipos.SelectedIndex != -1) { if (equipoSeleccionado().Fuente == 1) //Co { CB_CaliEnergias.Items.Add(equipoSeleccionado().energiaFot[0]); CB_CaliEnergias.SelectedIndex = 0; CB_CaliEnergias.Enabled = false; } else if (equipoSeleccionado().Fuente == 2) { foreach (var energia in equipoSeleccionado().energiaFot) { CB_CaliEnergias.Items.Add(energia); CB_CaliEnergias.DisplayMember = "Etiqueta"; if (energia.EsPredet == true) { energiaPredet = energia; } } if (energiaASeleccionar != null) { CB_CaliEnergias.SelectedItem = equipoSeleccionado().energiaFot.Where(e => e.ID == energiaASeleccionar.ID).FirstOrDefault(); } else if (energiaPredet != null) { CB_CaliEnergias.SelectedItem = equipoSeleccionado().energiaFot.Where(e => e.ID == energiaPredet.ID).FirstOrDefault(); } CB_CaliEnergias.Enabled = true; } CB_CaliEnergias.DisplayMember = "Etiqueta"; } }
public static CalibracionFot crear(Equipo _equipo, EnergiaFotones _energia, SistemaDosimetrico _sistdos, int _DFSoISO, double _ladoCampo, double _profundidad, DateTime _fecha, string _realizadoPor, double _ktp, double _TPR2010, double _kqq0, int _mideKqq0, double _kpol, int _mideKpol, double _vred, double _ks, int _mideKs, double _mref, double _dwzref, double _dwzmax, double _um, double _temperatura, double _presion, double _humedad, double _lectVmas, double _lectVmenos, double _lectVtot, double _lectVred, double _lectRef, double _lect20, double _lect10, int _DoTPR2010, double _difLB) { return(new CalibracionFot() { Equipo = _equipo, Energia = _energia, SistemaDosim = _sistdos, DFSoISO = _DFSoISO, LadoCampo = _ladoCampo, Profundidad = _profundidad, Fecha = _fecha, RealizadoPor = _realizadoPor, UM = _um, temperatura = _temperatura, presion = _presion, humedad = _humedad, Ktp = _ktp, lect10 = _lect10, lect20 = _lect20, DoTPR2010 = _DoTPR2010, TPR2010 = _TPR2010, Kqq0 = _kqq0, mideKqq0 = _mideKqq0, lectVmas = _lectVmas, lectVmenos = _lectVmenos, kpol = _kpol, mideKpol = _mideKpol, Vred = _vred, lectVtot = _lectVtot, lectVred = _lectVred, ks = _ks, mideKs = _mideKs, lectRef = _lectRef, Mref = _mref, Dwzref = _dwzref, Dwzmax = _dwzmax, DifLB = _difLB, EsReferencia = false, }); }
private void BT_EnFotEliminar_Click(object sender, EventArgs e) { EnergiaFotones.eliminar(DGV_EnFot); limpiarRegistro(Panel_EnFotEquipo); }
private void BT_EnFotEditar_Click(object sender, EventArgs e) { DGV_EnFot.Enabled = false; EnergiaFotones.editar(TB_EnFotEn, TB_EnFotZref, TB_EnFotLado, TB_EnFotPDD, TB_EnFotTMR, DGV_EnFot); editaEnergiaFot = true; }
private void BT_EnFotPredet_Click(object sender, EventArgs e) { EnergiaFotones.hacerPredeterminado(DGV_EnFot); }
public static double calcularTendencia(BindingList <CalibracionFot> lista, bool fechas, DateTime desde, DateTime hasta, Equipo equipo, EnergiaFotones energia, int DFSoISO, Chart grafico) { BindingList <CalibracionFot> listaFiltrada = new BindingList <CalibracionFot>(); if (fechas) { foreach (CalibracionFot cali in lista) { if (DateTime.Compare(cali.Fecha.Date, desde.Date) >= 0 && DateTime.Compare(cali.Fecha.Date, hasta.Date) <= 0) { listaFiltrada.Add(cali); } } } else { listaFiltrada = lista; } if (listaFiltrada.Count() == 0) { MessageBox.Show("No hay calibraciones en el rango de fechas seleccionado"); return(Double.NaN); } if (listaFiltrada.Count() == 1) { MessageBox.Show("En el rango de fechas seleccionado hay una única calibración.\nNo se puede realizar el análisis"); return(Double.NaN); } else { List <Double> valores = listaFiltrada.Select(q => q.Dwzref).ToList(); List <Double> fechasDouble = listaFiltrada.Select(q => q.Fecha.ToOADate()).ToList(); Graficar.agregarLineaTendencia(grafico, Calcular.cuadradosMinimos(fechasDouble, valores), fechasDouble.Min(), fechasDouble.Max()); if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO)) { return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO).Dwzref * 100 * 30, 2)); //mensual } else { return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / valores.Average() * 100 * 30, 2)); //mensual } } }
public static double calcularDifConRef(double Dwref, Equipo equipo, EnergiaFotones energia, int DFSoISO) { double DwrefLB = obtenerCaliReferencia(equipo, energia, DFSoISO).Dwzref; return(Math.Round((Dwref - DwrefLB) / DwrefLB * 100, 4)); }
public static double calcularKqq0(double TPR2010, Camara camara, Equipo equipo, bool usarLB, EnergiaFotones energia, int DFSoISO) { if (equipo.Fuente == 1) { return(1); } else if (usarLB) { return(obtenerCaliReferencia(equipo, energia, DFSoISO).Kqq0); } else { return(Math.Round(Calcular.interpolarLinea(TPR2010, Tabla.TPR2010etiquetas, camara.kqq0Fot), 4)); } }
public static double calcularTPR2010(double LV20, double LV10, int PDDoTPR, bool usarLB, Equipo equipo, EnergiaFotones energia, int DFSoISO) { if (usarLB) { return(obtenerCaliReferencia(equipo, energia, DFSoISO).TPR2010); } else if (PDDoTPR == 2)//está tildado D2010 { double PDD20_10 = Math.Abs(LV20 / LV10); return(Math.Round(1.2661 * PDD20_10 - 0.0595, 4)); } else { return(Math.Round(Math.Abs(LV20 / LV10), 4)); } }
public static double calcularKs(double Vtot, double LVtot, double LVred, bool noUsa, bool usaLB, Equipo equipo, EnergiaFotones energia, int DFSoISO, double Vred) { if (noUsa) { return(1); } else if (usaLB) { return(obtenerCaliReferencia(equipo, energia, DFSoISO).ks); } else { if (equipo.Fuente == 1)//Co { return(Math.Round((Math.Pow((Vtot / Vred), 2) - 1) / (Math.Pow((Vtot / Vred), 2) - (LVtot / LVred)), 4)); } else { double a0 = 0; double a1 = 0; double a2 = 0; if (equipo.TipoDeHaz == 1) //Pulsado { string[] fid = Tabla.Cargar(Tabla.tabla_Ks_pulsados); double[] v1_v2Etiquetas = Tabla.extraerDoubleArray(fid, 0); string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1); double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count()); a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); } else { string[] fid = Tabla.Cargar(Tabla.tabla_Ks_pulsadosYbarridos); double[] v1_v2Etiquetas = Tabla.extraerDoubleArray(fid, 0); string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1); double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count()); a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); } return(Math.Round(a0 + a1 * Math.Abs((LVtot / LVred)) + a2 * Math.Pow((LVtot / LVred), 2), 4)); } } }
public static double calcularKpol(int signopol, double LVmas, double LVmenos, bool noUsa, bool usaLB, Equipo equipo, EnergiaFotones energia, int DFSoISO) { if (noUsa) { return(1); } else if (usaLB) { return(obtenerCaliReferencia(equipo, energia, DFSoISO).kpol); } else { if (signopol == 1) //polaridad positiva { return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmas)), 4)); } else { return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmenos)), 4)); } } }
/* public static BindingList<Analisis> analizar(BindingList<CalibracionFot> lista, Equipo equipo, EnergiaFotones energia, int DFSoISO) * { * BindingList<Analisis> listaAnalisis = new BindingList<Analisis>(); * Analisis analisis = new Analisis(); * if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO)) * { * CalibracionFot caliRef = CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO); * analisis.valorReferenciaYFecha = caliRef.Dwzref.ToString() + " (" + caliRef.Fecha.ToShortDateString() + ")"; * } * else * { * analisis.valorReferenciaYFecha = ""; * } * List<Double> valores = lista.Select(q => q.Dwzref).ToList(); * analisis.valorPromedio = Math.Round(valores.Average(), 2); * //analisis.desviacionEstandar = valores. * analisis.valorMaximoYFecha = valores.Max().ToString() + " (" + (lista[valores.IndexOf(valores.Max())].Fecha).ToShortDateString() + ")"; * analisis.valorMinimoYFecha = valores.Min().ToString() + " (" + (lista[valores.IndexOf(valores.Min())].Fecha).ToShortDateString() + ")"; * analisis.desvEstandar = Calcular.desvEstandar(valores); * * listaAnalisis.Add(analisis); * return listaAnalisis; * }*/ public static Analisis analizar2(BindingList <CalibracionFot> lista, Equipo equipo, EnergiaFotones energia, int DFSoISO) { Analisis analisis = new Analisis(); List <Double> valores = lista.Select(q => q.Dwzref).ToList(); if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO)) { CalibracionFot caliRef = CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO); analisis.Referencia = ValorARF.crear(caliRef.Dwzref, caliRef.Dwzref, caliRef.Fecha); } else { analisis.Referencia = new ValorARF() { absoluto = double.NaN, relativo = double.NaN, fecha = "", }; } analisis.Maximo = ValorARF.crear(valores.Max(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Max())].Fecha)); analisis.Minimo = ValorARF.crear(valores.Min(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Min())].Fecha)); analisis.Promedio = ValorARF.crear(Math.Round(valores.Average(), 2), analisis.Referencia.absoluto); analisis.DesvEst = ValorARF.crear(Calcular.desvEstandar(valores), analisis.Referencia.absoluto); return(analisis); }
public static void analisis(object sender, PrintPageEventArgs e, Equipo equipo, EnergiaFotones energia, Chart grafico, DataGridView tablaCalibraciones, DataGridView tablaAnalisis, int DFSoISO) { string TMRoPDD = ""; if (DFSoISO == 1) { TMRoPDD = energia.PddZrefFot.ToString(); } else { TMRoPDD = energia.TmrZrefFot.ToString(); } int posicionlinea = 30; posicionlinea = tituloAnalisis(e, posicionlinea); posicionlinea = fechaAnalisis(e, posicionlinea); posicionlinea += altoTexto; posicionlinea = imprimirEquipo(e, posicionlinea, equipo, energia); posicionlinea += altoTexto; posicionlinea = imprimirCondiciones(e, posicionlinea, DFSoISO, energia.LadoCampo.ToString(), energia.ZRefFot.ToString(), TMRoPDD); posicionlinea += altoTexto; }
public static int imprimirEquipo(PrintPageEventArgs e, int posicionlinea, Equipo equipo, EnergiaFotones energia) { imprimirSubtitulo(e, "Unidad de tratamiento", posicionlinea); posicionlinea += altoSubtitulo; imprimirLinea(e, posicionlinea); posicionlinea += espacioTitulo; imprimirEtiquetaYValor(e, posicionlinea, "Institución: ", equipo.Institucion, 0); posicionlinea += altoTexto + espacioParrafo; if (equipo.Fuente == 1) { imprimirEtiquetaYValor(e, posicionlinea, "Tipo de equipo: ", "Co-60", 0); posicionlinea += altoTexto + espacioParrafo; imprimirEtiquetaYValorx3(e, posicionlinea, "Marca: ", equipo.Marca, "Modelo: ", equipo.Modelo, "Nº de serie: ", equipo.NumSerie); posicionlinea += (altoTexto + espacioParrafo) * 2; //Ver que quede igual que en ALE } else if (equipo.Fuente == 2) { imprimirEtiquetaYValor(e, posicionlinea, "Tipo de equipo: ", "Acelerador Lineal de Electrones", 0); posicionlinea += altoTexto + espacioParrafo; imprimirEtiquetaYValorx3(e, posicionlinea, "Marca: ", equipo.Marca, "Modelo: ", equipo.Modelo, "Nº de serie: ", equipo.NumSerie); posicionlinea += altoTexto + espacioParrafo; imprimirEtiquetaYValor(e, posicionlinea, "Energía Nominal: ", energia.Energia + "MV", 0); } posicionlinea += altoTexto + espacioParrafo; return(posicionlinea); }