private System.Data.DataTable ObtenerTablaFormatoDatosReporteResultado(int ano, int mes) { BLTarifario enlace = new BLTarifario(); Tarifario tar = enlace.ObtenerTarifario(); System.Data.DataTable tablaInterna = new System.Data.DataTable(); try { LogicaOrden enlaceOrden = new LogicaOrden(); List <object[]> resultados = enlaceOrden.ObtenerReporteResultado(ano, mes); tablaInterna.Columns.Add("dni", typeof(string)); tablaInterna.Columns.Add("nombre", typeof(string)); tablaInterna.Columns.Add("apellido1", typeof(string)); tablaInterna.Columns.Add("apellido2", typeof(string)); tablaInterna.Columns.Add("edad", typeof(double)); tablaInterna.Columns.Add("sexo", typeof(string)); tablaInterna.Columns.Add("gestante", typeof(string)); tablaInterna.Columns.Add("Examen", typeof(string)); tablaInterna.Columns.Add("respuesta", typeof(string)); tablaInterna.Columns.Add("nota", typeof(string)); tablaInterna.Columns.Add("cobertura", typeof(string)); tablaInterna.Columns.Add("estado", typeof(string)); foreach (object[] obt in resultados) { DataRow row = tablaInterna.NewRow(); row[0] = obt[1].ToString(); row[1] = obt[2].ToString(); row[2] = obt[3].ToString(); row[3] = obt[4].ToString(); row[4] = obt[5]; row[5] = DiccionarioGeneral.GetInstance().TipoSexo[(int)obt[6]]; row[6] = Convert.ToBoolean(obt[7])?"SI":"NO"; row[7] = Plantillas.GetInstance().GetPlantilla((int)obt[0]).Nombre; row[8] = obt[8].ToString().Replace('.', ','); row[9] = obt[9]; row[10] = DiccionarioGeneral.GetInstance().TipoCobertura[(int)obt[10]]; row[11] = DiccionarioGeneral.GetInstance().EstadoExamen[(int)obt[11]]; tablaInterna.Rows.Add(row); } } catch (Exception ex) { MessageBox.Show(ex.Message); } return(tablaInterna); }
private void RellenarExamenesEnTabla() { LogicaCuenta oLCuenta = new LogicaCuenta(); LogicaExamen enlaceExamen = new LogicaExamen(); if (ordenes.Count > 0) { tabla.Clear(); Cuenta account; examenesGeneral = new Dictionary <int, Examen>(); Orden orden = ordenes[(int)ComboBoxOrden.SelectedValue]; Dictionary <int, Examen> temp = enlaceExamen.RecuperarExamenes(orden); foreach (Examen ex in temp.Values) { if (ex.Estado == Examen.EstadoExamen.Terminado) { this.SuspendLayout(); examenesGeneral.Add(ex.IdData, ex); DataRow row = tabla.NewRow(); row[0] = ex.IdOrdenDetalle; //Orden Detalle row[1] = ex.IdData; //Examen String nombrePaquete = ControlSistemaInterno.ListaAnalisis.GetInstance().GetAnalisisById(orden.Detalle[ex.IdOrdenDetalle].IdDataPaquete).Nombre; String nombrePlantilla = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Nombre; row[2] = (nombrePaquete == nombrePlantilla) ? nombrePaquete : (nombrePaquete + ":" + nombrePlantilla); account = oLCuenta.ObtenerCuenta(ex.IdCuenta); row[3] = (account.Nombre + account.PrimerApellido).ToUpper() + " (" + account.Dni + ")"; row[4] = ex.UltimaModificacion; row[5] = orden.IdData; tabla.Rows.Add(row); this.ResumeLayout(false); } } BtnPrint.Visible = examenesGeneral.Count > 0; } }
public static Dictionary <int, PlantillaItem> GetAllItemsByPlantilla(int idPlantilla) { return(Plantillas.GetInstance().GetPlantilla(idPlantilla).ItemsIndexed); }
public FormatoImpresion CrearDocumento(Orden orden, Paciente paciente, Dictionary <int, Examen> examenPorOrden) { List <Examen> examenSelectedTemp; FormatoImpresion pagina = new FormatoImpresion(); pagina.Orden = "O" + orden.IdData; pagina.Nombre = paciente.Nombre + " " + paciente.ApellidoPaterno + " " + paciente.ApellidoMaterno; pagina.Historia = paciente.Historia; pagina.Edad = this.GetAge(paciente); FormatoImpresion.PaginaLinea lineaTemp; foreach (OrdenDetalle detalle in orden.Detalle.Values) { examenSelectedTemp = GetExamenes(examenPorOrden, detalle); string nombreTar = Tarifario.GetInstance().Paquetes[detalle.IdDataTarifa].Nombre; string nombreEx = null; lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.TituloInicio; lineaTemp.Nombre = nombreTar; pagina.Detalles.Add(lineaTemp); foreach (Examen ex in examenSelectedTemp) { nombreEx = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Nombre; if (!nombreEx.Equals(nombreTar)) { lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.SubTitulo; lineaTemp.Nombre = nombreEx; pagina.Detalles.Add(lineaTemp); } Dictionary <int, PlantillaDetalle> detalles = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Detalle; for (int i = 0; i < detalles.Count; i++) { switch (detalles[i].Tipo) { case PlantillaDetalle.TipoDetalle.Grupo: lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.GrupoInicio; lineaTemp.Nombre = detalles[i].Grupo.Nombre; pagina.Detalles.Add(lineaTemp); if (detalles[i].Grupo.IdData == 4) //Para el grupo especial Medicina // Luego se puede mejorar Agregando un elemento deseado incorporandolo { foreach (Item itemG in detalles[i].Grupo.Items.Values) { lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple; lineaTemp.Nombre = " * " + itemG.Nombre; int indice = Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo); if (indice != 0) { lineaTemp.Resultado = itemG.OpcionesByIndice[indice]; pagina.Detalles.Add(lineaTemp); } } } else { foreach (Item itemG in detalles[i].Grupo.Items.Values) { lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple; lineaTemp.Nombre = " * " + itemG.Nombre; switch (itemG.TipoCampo) { case TipoCampo.Input: lineaTemp.Resultado = ex.DetallesByItem[itemG.IdData].Campo.ToString(); if (itemG.TieneUnidad) { lineaTemp.Resultado += itemG.Unidad; } lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[itemG.IdData]); break; case TipoCampo.Lista: lineaTemp.Resultado = itemG.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo)]; break; case TipoCampo.Texto: lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemTexto; lineaTemp.Resultado = ex.DetallesByItem[itemG.IdData].Campo.ToString(); break; } pagina.Detalles.Add(lineaTemp); } } lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.GrupoFin; break; case PlantillaDetalle.TipoDetalle.Item: Item item = detalles[i].Item; lineaTemp = new FormatoImpresion.PaginaLinea(); lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple; if (!nombreEx.Equals(item.Nombre)) { lineaTemp.Nombre = item.Nombre; } else { lineaTemp.Nombre = "RESULTADO"; } switch (item.TipoCampo) { case TipoCampo.Input: lineaTemp.Resultado = ex.DetallesByItem[item.IdData].Campo.ToString(); if (item.TieneUnidad) { lineaTemp.Resultado += " " + item.Unidad; } switch (item.TipoDato) { case TipoDato.Entero: lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[item.IdData]); break; case TipoDato.Decimal: lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[item.IdData]); break; } break; case TipoCampo.Lista: lineaTemp.Resultado = item.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[item.IdData].Campo)]; break; case TipoCampo.Texto: lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemTexto; lineaTemp.Resultado = ex.DetallesByItem[item.IdData].Campo.ToString(); break; } pagina.Detalles.Add(lineaTemp); break; } } } } return(pagina); }
private void CargarPlantillaEnPanel(Examen examen) { LogicaCuenta oLCuenta = new LogicaCuenta(); Plantilla plantilla = Plantillas.GetInstance().GetPlantilla(examen.IdPlantilla); CheckEstado.Checked = Convert.ToBoolean((int)examen.Estado); LabelExamen.Text = Plantillas.GetInstance().Coleccion()[examen.IdPlantilla].Nombre; Cuenta account = oLCuenta.ObtenerCuenta(examen.IdCuenta); LabelUsuarioLast.Text = (account.Nombre + account.PrimerApellido).ToUpper() + " (" + account.Dni + ")"; this.SuspendLayout(); List <ExamenEditorFila> filas = new List <ExamenEditorFila>(); panelActual = new ExamenEditorContenedor(PanelExamen.Width - 10, PanelExamen.Height - 10); PanelExamen.SuspendLayout(); ExamenEditorFila filaForm = null; ExamenEditorItem itemForm = null; ExamenEditorGrupo grupoForm = null; PlantillaItem item; int posicion = 0; for (int indice = 0; indice < plantilla.Filas.Count; indice++) { if (PlantillaFila.PlantillaFilaTipo.Agrupada == plantilla.Filas[indice].Tipo) { PlantillaFilaGrupo filaGrupo = (PlantillaFilaGrupo)plantilla.Filas[indice]; filaForm = new ExamenEditorFila(panelActual.Width - 10, 25); filaForm.SuspendLayout(); filaForm.Tipo = ExamenEditorFila.TipoForm.Grupo; grupoForm = new ExamenEditorGrupo(filaForm.Width - 5, 0); grupoForm.SuspendLayout(); grupoForm.Location = new Point(0, 0); grupoForm.Nombre = filaGrupo.Nombre; List <ExamenEditorItem> items = new List <ExamenEditorItem>(); for (int j = 0; j < filaGrupo.Items.Count; j++) { item = filaGrupo.Items[j]; itemForm = new ExamenEditorItem(grupoForm.Width - 20, 25, item.TieneUnidad); itemForm.SuspendLayout(); itemForm.TabIndex = posicion; posicion++; itemForm.IdItem = item.IdData; itemForm.Nombre = item.Nombre; itemForm.TipoDato = item.TipoDato; itemForm.TipoCampo = item.TipoCampo; if (item.TipoCampo == TipoCampo.Lista) { itemForm.Opciones = item.OpcionesByIndice; } else if (item.TipoCampo == TipoCampo.Texto) { filaForm.Height = 80; itemForm.Height = 80; } if (item.TipoDato == TipoDato.Entero || item.TipoDato == TipoDato.Bool) { itemForm.RegEx = DiccionarioGeneral.GetInstance().Expression[(int)item.TipoDato]; } if (item.TieneUnidad) { itemForm.Unidad = item.Unidad; } itemForm.Location = new Point(10, 20); items.Add(itemForm); itemForm.ResumeLayout(false); } grupoForm.Items = items; filaForm.Grupo = grupoForm; filas.Add(filaForm); grupoForm.ResumeLayout(false); filaForm.ResumeLayout(false); } else { item = ((PlantillaFilaSimple)plantilla.Filas[indice]).Item; filaForm = new ExamenEditorFila(panelActual.Width - 10, 25); filaForm.SuspendLayout(); filaForm.Location = new Point(10, 10); filaForm.Tipo = ExamenEditorFila.TipoForm.Item; itemForm = new ExamenEditorItem(filaForm.Width - 5, 25, item.TieneUnidad); itemForm.SuspendLayout(); itemForm.Location = new Point(0, 0); itemForm.IdItem = item.IdData; itemForm.Nombre = item.Nombre; itemForm.TabIndex = posicion; posicion++; itemForm.TipoCampo = item.TipoCampo; itemForm.TipoDato = item.TipoDato; if (item.TipoCampo == TipoCampo.Lista) { itemForm.Opciones = item.OpcionesByIndice; } else if (item.TipoCampo == TipoCampo.Texto) { filaForm.Height = 80; itemForm.Height = 80; } if (item.TieneUnidad) { itemForm.Unidad = item.Unidad; } filaForm.Item = itemForm; filas.Add(filaForm); itemForm.ResumeLayout(false); filaForm.ResumeLayout(false); } } panelActual.Filas = filas; PanelExamen.Controls.Add(panelActual); PanelExamen.ResumeLayout(false); this.ResumeLayout(false); }
private void CargarDatosEnDGVExamen(Orden orden) { LogicaOrden enlaceOrden = new LogicaOrden(); LogicaExamen enlaceExamen = new LogicaExamen(); DGVExamen.SuspendLayout(); tabla.Clear(); examenes = enlaceExamen.RecuperarExamenes(orden); foreach (Examen ex in examenes.Values) { DataRow row = tabla.NewRow(); String nombrePaquete = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToLower(ControlSistemaInterno.ListaAnalisis.GetInstance().GetAnalisisById(orden.Detalle[ex.IdOrdenDetalle].IdDataPaquete).Nombre)); String nombrePlantilla = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToLower(Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Nombre)); row[0] = (nombrePaquete == nombrePlantilla) ? nombrePaquete : (nombrePaquete + ":" + nombrePlantilla); row[1] = DiccionarioGeneral.GetInstance().EstadoExamen[(int)ex.Estado]; row[2] = ex.IdData;//Examen tabla.Rows.Add(row); } DGVExamen.ResumeLayout(false); }
public FormatoImpresion CrearAllDocumento(Dictionary <int, Examen> examenes, Orden orden, float tamañoFuente, Size tamañoPag) { LogicaPaciente oLPaciente = new LogicaPaciente(); Clasificador clasificador = new Clasificador(); FormatoImpresion formato; tamañoPag.Height = tamañoPag.Height / 2; tamañoPag.Width = tamañoPag.Width / 2; Paciente paciente = oLPaciente.ObtenerPerfilPorId(orden.IdPaciente); int idLastResponsable = 0; DateTime tempTime = DateTime.MinValue; foreach (Examen ex in examenes.Values) { Area area = (Area)Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Area; repositorio[area].Add(ex.IdData); if (ex.UltimaModificacion >= tempTime) { tempTime = ex.UltimaModificacion; idLastResponsable = ex.IdCuenta; } } //CONSTRUCCION DE CABECERA formato = new FormatoImpresion(); FormatoImpresionCabecera cab = new FormatoImpresionCabecera(); Dictionary <int, FormatoImpresionPagina> paginas = new Dictionary <int, FormatoImpresionPagina>(); LogicaCuenta oLCuenta = new LogicaCuenta(); BLMedico oLMedico = new BLMedico(); Medico med = oLMedico.ObtenerMedico(orden.IdMedico); Cuenta cu = oLCuenta.ObtenerCuenta(idLastResponsable); Tiempo tiempo = DiccionarioGeneral.GetInstance().CalcularEdad(paciente.FechaNacimiento); cab.Edad = DiccionarioGeneral.GetInstance().FormatoEdad(tiempo); cab.Orden = "No " + orden.IdData; cab.Nombre = CultureInfo.CurrentCulture.TextInfo.ToTitleCase((paciente.Nombre + " " + paciente.PrimerApellido + " " + paciente.SegundoApellido)); cab.Historia = paciente.Historia; cab.Responsable = CultureInfo.CurrentCulture.TextInfo.ToTitleCase((cu.Nombre + " " + cu.PrimerApellido + " " + cu.SegundoApellido + " - " + cu.Especialidad)); cab.Doctor = CultureInfo.CurrentCulture.TextInfo.ToTitleCase((med.Nombre + " " + med.PrimerApellido + " " + med.SegundoApellido)); cab.UltimaRev = (tempTime.ToShortDateString()); formato.Cabecera = cab; Dictionary <int, FormatoImpresionPaginaLinea> lineas = null; FormatoImpresionPagina pagina = null; FormatoImpresionPaginaLinea linea = null; int indexLinea = 0; foreach (Area key in repositorio.Keys) { if (repositorio[key].Count > 0) { pagina = new FormatoImpresionPagina(); lineas = new Dictionary <int, FormatoImpresionPaginaLinea>(); pagina.Detalles = lineas; indexLinea = 0; //CONSTRUCCION DE PAGINAS linea = new FormatoImpresionPaginaLinea(); linea.Nombre = "LABORATORIO DE " + DiccionarioGeneral.GetInstance().Area[(int)key]; linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.TituloArea; lineas.Add(indexLinea, linea); indexLinea++; foreach (int idEx in repositorio[key]) { Examen ex = examenes[idEx]; linea = new FormatoImpresionPaginaLinea(); linea.Nombre = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Nombre; linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.TituloExamen; lineas.Add(indexLinea, linea); indexLinea++; Dictionary <int, PlantillaFila> plantillaFila = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Filas; for (int i = 0; i < plantillaFila.Count; i++) { switch (plantillaFila[i].Tipo) { case PlantillaFila.PlantillaFilaTipo.Agrupada: PlantillaFilaGrupo filaGrupo = (PlantillaFilaGrupo)plantillaFila[i]; linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.TituloGrupo; linea.Nombre = filaGrupo.Nombre; lineas.Add(indexLinea, linea); indexLinea++; if (filaGrupo.IdData == 4) //Para el grupo especial Medicina // Luego se puede mejorar Agregando un elemento deseado incorporandolo { foreach (PlantillaItem itemG in filaGrupo.Items.Values) { linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Nombre = " * " + itemG.Nombre; int indice = Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo); if (indice != 0) { linea.Resultado = itemG.OpcionesByIndice[indice]; lineas.Add(indexLinea, linea); indexLinea++; } } } else { foreach (PlantillaItem itemG in filaGrupo.Items.Values) { switch (itemG.TipoCampo) { case TipoCampo.Input: linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Nombre = " * " + itemG.Nombre; linea.Resultado = ex.DetallesByItem[itemG.IdData].Campo.ToString(); if (itemG.TieneUnidad) { linea.Resultado += itemG.Unidad; } linea.Resultado += clasificador.Clasificar(paciente, ex.IdData, ex.DetallesByItem[itemG.IdData]); lineas.Add(indexLinea, linea); indexLinea++; break; case TipoCampo.Lista: linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Nombre = " * " + itemG.Nombre; linea.Resultado = itemG.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo)]; lineas.Add(indexLinea, linea); indexLinea++; break; case TipoCampo.Texto: if (!ex.DetallesByItem[itemG.IdData].Campo.Equals("")) { linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Nombre = " * " + itemG.Nombre; string temp = ""; List <string> lista = ConstructorFicha.AcoplarTexto(linea.Nombre + ": " + ex.DetallesByItem[itemG.IdData].Campo.ToString(), "Futura Bk BT", 7.5f, (double)tamañoPag.Width); for (int ind = 0; ind < lista.Count; ind++) { linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemTexto; if (itemG.TieneUnidad && indexLinea + 1 == lista.Count) { temp += itemG.Unidad; } linea.Resultado = lista[ind]; lineas.Add(indexLinea, linea); indexLinea++; } } break; } } } break; case PlantillaFila.PlantillaFilaTipo.Simple: PlantillaItem item = ((PlantillaFilaSimple)plantillaFila[i]).Item; switch (item.TipoCampo) { case TipoCampo.Input: linea = new FormatoImpresionPaginaLinea(); linea.Nombre = item.Nombre; linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Resultado = ex.DetallesByItem[item.IdData].Campo.ToString(); if (item.TieneUnidad) { linea.Resultado += " " + item.Unidad; } switch (item.TipoDato) { case TipoDato.Entero: linea.Resultado += clasificador.Clasificar(paciente, ex.IdData, ex.DetallesByItem[item.IdData]); break; case TipoDato.Decimal: linea.Resultado += clasificador.Clasificar(paciente, ex.IdData, ex.DetallesByItem[item.IdData]); break; } lineas.Add(indexLinea, linea); indexLinea++; break; case TipoCampo.Lista: linea = new FormatoImpresionPaginaLinea(); linea.Nombre = item.Nombre; linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemSimple; linea.Resultado = item.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[item.IdData].Campo)]; lineas.Add(indexLinea, linea); indexLinea++; break; case TipoCampo.Texto: if (!ex.DetallesByItem[item.IdData].Campo.Equals("")) { linea = new FormatoImpresionPaginaLinea(); linea.Nombre = item.Nombre; string temp = ""; List <string> lista = ConstructorFicha.AcoplarTexto(linea.Nombre + ": " + ex.DetallesByItem[item.IdData].Campo, "Futura Bk BT", 7.5f, (double)tamañoPag.Width); for (int ind = 0; ind < lista.Count; ind++) { linea = new FormatoImpresionPaginaLinea(); linea.TipoLinea = FormatoImpresionPaginaLinea.TipoPaginaLinea.ItemTexto; if (item.TieneUnidad && ind + 1 == lista.Count) { temp += item.Unidad; } linea.Resultado = lista[ind]; lineas.Add(indexLinea, linea); indexLinea++; } } break; } break; } } } formato.Paginas.Add(pagina); } } return(formato); }