Beispiel #1
0
        private Document DocumentoEpicrisis()
        {
            Document document = new Document();

            if (TxtNumExpediente.Text.Trim() != "")
            {
                if (lstConsultasPaciente.Items.Count > 0)
                {
                    if (oCEmpresa.LeeDatosEmpresa() == true && oCPacientes.LeeDatosPaciente(TxtNumExpediente.Text.Trim()) == true)
                    {
                        Section section = document.AddSection();

                        #region Encabezado (Fecha, Título, Datos Personales y Detalle Opcional)

                        Table tableHeader = document.LastSection.AddTable();

                        tableHeader.Borders.Visible = true;
                        tableHeader.Borders.Width   = 0;

                        Column columnHeader = tableHeader.AddColumn("8cm");
                        columnHeader.Format.Alignment = ParagraphAlignment.Right;

                        columnHeader = tableHeader.AddColumn("8cm");
                        columnHeader.Format.Alignment = ParagraphAlignment.Center;

                        Row rowHeader = tableHeader.AddRow();
                        tableHeader.AddRow();
                        tableHeader.AddRow();
                        tableHeader.AddRow();

                        #region Fecha

                        Paragraph oParagraphDate = rowHeader.Cells[0].AddParagraph(DateTime.Now.Date.ToLongDateString());
                        oParagraphDate.Format.Font    = new MigraDoc.DocumentObjectModel.Font("Arial", 10);
                        rowHeader.Cells[0].MergeRight = 1;
                        #endregion

                        #region Título

                        rowHeader = tableHeader.AddRow();
                        rowHeader.Cells[0].MergeRight = 1;

                        Paragraph oParagraphTitle = rowHeader.Cells[0].AddParagraph("Epicrisis");
                        oParagraphTitle.Format.Alignment = ParagraphAlignment.Center;
                        oParagraphTitle.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Arial", 26);

                        #endregion

                        tableHeader.AddRow();
                        tableHeader.AddRow();
                        tableHeader.AddRow();

                        #region Datos Personales (Nombre y Cédula)

                        rowHeader = tableHeader.AddRow();

                        Paragraph     oParagraphNombre     = rowHeader.Cells[0].AddParagraph();
                        FormattedText oFormattedTextNombre = oParagraphNombre.AddFormattedText("Nombre: ");
                        oFormattedTextNombre.Bold      = true;
                        oFormattedTextNombre.Font.Name = "Segoe UI";
                        oFormattedTextNombre.Font.Size = 11;

                        oParagraphNombre.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 9);
                        oParagraphNombre.AddText(oCPacientes.Nombre.Trim() + " " + oCPacientes.Apellidos.Trim());

                        oParagraphNombre.Format.Alignment = ParagraphAlignment.Left;

                        Paragraph     oParagraphCedula     = rowHeader.Cells[1].AddParagraph();
                        FormattedText oFormattedTextCedula = oParagraphCedula.AddFormattedText("Cédula: ");
                        oFormattedTextCedula.Bold      = true;
                        oFormattedTextCedula.Font.Name = "Segoe UI";
                        oFormattedTextCedula.Font.Size = 11;

                        oParagraphCedula.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 9);
                        oParagraphCedula.AddText(oCPacientes.Cedula);

                        oParagraphCedula.Format.Alignment = ParagraphAlignment.Left;

                        #endregion

                        tableHeader.AddRow();
                        tableHeader.AddRow();

                        #region Detalle Opcional

                        rowHeader = tableHeader.AddRow();
                        rowHeader.Cells[0].MergeRight = 1;

                        Paragraph     oParagraphDetalleOpcional = rowHeader.Cells[0].AddParagraph();
                        FormattedText oFormattedDetalleOpcional = oParagraphDetalleOpcional.AddFormattedText(textBox1.Text.Trim());
                        oFormattedDetalleOpcional.Font.Name        = "Arial";
                        oFormattedDetalleOpcional.Font.Size        = 10;
                        oParagraphDetalleOpcional.Format.Alignment = ParagraphAlignment.Left;

                        #endregion

                        tableHeader.AddRow();
                        tableHeader.AddRow();
                        tableHeader.AddRow();

                        #endregion

                        #region Tabla de Datos de Consultas

                        if (rdNoIncluirDetallesConsultas.Checked == false)
                        {
                            Table tableData = document.LastSection.AddTable();

                            tableData.Borders.Visible = true;
                            tableData.Borders.Width   = 0.74;
                            tableData.Borders.Color   = new MigraDoc.DocumentObjectModel.Color(192, 80, 77);

                            Column columnData = tableData.AddColumn("2.8cm");
                            columnData.Format.Alignment = ParagraphAlignment.Center;

                            columnData = tableData.AddColumn("3.5cm");
                            columnData.Format.Alignment = ParagraphAlignment.Center;

                            columnData = tableData.AddColumn("3.5cm");
                            columnData.Format.Alignment = ParagraphAlignment.Center;

                            columnData = tableData.AddColumn("3.7cm");
                            columnData.Format.Alignment = ParagraphAlignment.Center;

                            columnData = tableData.AddColumn("3.7cm");
                            columnData.Format.Alignment = ParagraphAlignment.Center;

                            Row rowData = tableData.AddRow();

                            rowData.Borders.Top.Clear();
                            rowData.Borders.Left.Clear();
                            rowData.Borders.Right.Clear();
                            rowData.Borders.Bottom.Width = Unit.FromMillimeter(1);

                            Paragraph oParagraphDataHeader = new Paragraph();

                            oParagraphDataHeader                  = rowData.Cells[0].AddParagraph("Fecha de Consulta");
                            oParagraphDataHeader.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13);
                            oParagraphDataHeader.Format.Font.Bold = true;

                            oParagraphDataHeader                  = rowData.Cells[1].AddParagraph("Detalle de la Consulta");
                            oParagraphDataHeader.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13);
                            oParagraphDataHeader.Format.Font.Bold = true;

                            oParagraphDataHeader                  = rowData.Cells[2].AddParagraph("Diagnóstico");
                            oParagraphDataHeader.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13);
                            oParagraphDataHeader.Format.Font.Bold = true;

                            oParagraphDataHeader                  = rowData.Cells[3].AddParagraph("Tratamiento");
                            oParagraphDataHeader.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13);
                            oParagraphDataHeader.Format.Font.Bold = true;

                            oParagraphDataHeader                  = rowData.Cells[4].AddParagraph("Exámenes Prescritos");
                            oParagraphDataHeader.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13);
                            oParagraphDataHeader.Format.Font.Bold = true;

                            Paragraph oParagraphData = new Paragraph();
                            ArrayList oArregloDetallesConsultaEpicrisis = new ArrayList();

                            int  alternateColor = 0;
                            bool continuar      = false;
                            foreach (ListViewItem oItem in lstConsultasPaciente.Items)
                            {
                                if (rdTodas.Checked == true)
                                {
                                    continuar = true;
                                }
                                else if (rdSeleccionar.Checked == true)
                                {
                                    if (oItem.Checked == true)
                                    {
                                        continuar = true;
                                    }
                                    else
                                    {
                                        continuar = false;
                                    }
                                }

                                if (continuar == true)
                                {
                                    oArregloDetallesConsultaEpicrisis = oCConsultas.DetallesConsultaEpicrisis(oItem.SubItems[1].Text.Trim());

                                    rowData = tableData.AddRow();

                                    //if (alternateColor == 0)
                                    //    rowData.Shading.Color = new MigraDoc.DocumentObjectModel.Color(239, 211, 210);
                                    //else
                                    rowData.Shading.Color = Colors.White;

                                    oParagraphData                   = rowData.Cells[0].AddParagraph(Convert.ToDateTime(oItem.SubItems[3].Text).ToShortDateString());
                                    oParagraphData.Format.Font       = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 12);
                                    oParagraphData.Format.Font.Bold  = true;
                                    oParagraphData.Format.Font.Color = new MigraDoc.DocumentObjectModel.Color(36, 64, 97);
                                    oParagraphData.Format.Alignment  = ParagraphAlignment.Center;
                                    rowData.Cells[0].Shading.Color   = Colors.White;

                                    oParagraphData = rowData.Cells[1].AddParagraph(oArregloDetallesConsultaEpicrisis[0].ToString().Trim());
                                    oParagraphData.Format.Font.Bold = false;
                                    oParagraphData.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Arial", 8);
                                    oParagraphData.Format.Alignment = ParagraphAlignment.Left;

                                    string oTratamiento = oArregloDetallesConsultaEpicrisis[1].ToString().Trim();

                                    int c = 0;
                                    while (oTratamiento.Contains("{") || oTratamiento.Contains("}"))
                                    {
                                        if (c == 0)
                                        {
                                            oTratamiento = Metodos_Globales.CortaSeccionDeTexto(oTratamiento, "{", "}", "");
                                        }
                                        else
                                        {
                                            oTratamiento = Metodos_Globales.CortaSeccionDeTexto(oTratamiento, "{", "}", ", ");
                                        }

                                        c++;
                                    }

                                    oParagraphData = rowData.Cells[2].AddParagraph(oTratamiento.Trim());
                                    oParagraphData.Format.Font.Bold = false;
                                    oParagraphData.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Arial", 8);
                                    oParagraphData.Format.Alignment = ParagraphAlignment.Left;

                                    oParagraphData = rowData.Cells[3].AddParagraph(oArregloDetallesConsultaEpicrisis[2].ToString().Trim());
                                    oParagraphData.Format.Font.Bold = false;
                                    oParagraphData.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Arial", 8);
                                    oParagraphData.Format.Alignment = ParagraphAlignment.Left;

                                    string  detalleExamen = "";
                                    DataSet ds            = oCExamenesConsulta.ConsultarSinParametros(oItem.SubItems[1].Text.Trim());

                                    if (ds != null)
                                    {
                                        if (ds.Tables[0].Rows.Count > 0)
                                        {
                                            foreach (DataRow dr in ds.Tables[0].Rows)
                                            {
                                                if (Convert.ToBoolean(dr[3]) == true)
                                                {
                                                    detalleExamen = "• " + oCExamenesConsulta.NombreExamen(dr[0].ToString().Trim()) + "(" + dr[5].ToString().Trim() + ").";
                                                }
                                                else
                                                {
                                                    detalleExamen = "• " + oCExamenesConsulta.NombreExamen(dr[0].ToString().Trim()) + "(\"Pendiente de resultados\").";
                                                }

                                                oParagraphData = rowData.Cells[4].AddParagraph(detalleExamen.Trim());
                                                oParagraphData.Format.Font.Bold = false;
                                                oParagraphData.Format.Font      = new MigraDoc.DocumentObjectModel.Font("Arial", 8);
                                                oParagraphData.Format.Alignment = ParagraphAlignment.Left;
                                                oParagraphData.AddLineBreak();
                                            }
                                        }
                                        ds.Dispose();
                                    }

                                    if (alternateColor == 0)
                                    {
                                        alternateColor = 1;
                                    }
                                    else
                                    {
                                        alternateColor = 0;
                                    }

                                    rowData.Borders.Top.Clear();
                                    rowData.Borders.Left.Clear();
                                    //rowData.Borders.Bottom.Clear();
                                }
                            }
                        }
                        #endregion

                        #region Agrega Footer

                        Section section2 = document.LastSection;

                        section2.PageSetup.OddAndEvenPagesHeaderFooter = false;

                        HeaderFooter footer     = new HeaderFooter();
                        Paragraph    paraFooter = new Paragraph();
                        MigraDoc.DocumentObjectModel.Font ofont = new MigraDoc.DocumentObjectModel.Font("Arial", 8);
                        paraFooter.AddLineBreak();
                        ofont.Color = Colors.Black;

                        string nombreEmp   = oCEmpleados.ObtieneNombreEmpleado(Program.oIdUsuario);
                        string codEmpleado = oCEmpleados.ObtieneCodigoColegiado(Program.oIdUsuario);

                        string footerText = "________________________________" + Environment.NewLine + nombreEmp.Trim() + Environment.NewLine + "Cód. " + codEmpleado.Trim();
                        paraFooter.AddFormattedText(footerText, ofont);
                        paraFooter.Format.Alignment = ParagraphAlignment.Right;
                        footer.Add(paraFooter);
                        //section2.Footers.Primary = footer;
                        document.LastSection.Footers.Primary = footer;

                        #endregion

                        #region Crea el documento

                        pdfRenderer          = new PdfDocumentRenderer(false, PdfFontEmbedding.Always);
                        pdfRenderer.Document = document;
                        pdfRenderer.RenderDocument();

                        #endregion
                    }
                }
            }

            oDocument = document;

            return(document);
        }