Beispiel #1
0
        /// <summary>method write report's main box custom sections to document grid
        /// </summary>
        protected override int WriteCustomSectionToMainBox()
        {
            const double fontSize   = m_FontSize + 2;
            const double leftMargin = m_LeftMargin + 18;
            const double topMargin  = m_TopMargin + 6;

            int  rowsCount = m_ReportData.ResultRowsCount + 1;
            Grid grid      = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.4, 1.5, 2.5 }, m_LeftMargin), rowsCount);

            grid.Margin = new Thickness(leftMargin, topMargin, 0, 0);

            for (int i = 0; i < rowsCount; i++)
            {
                for (int j = 0; j < ResultColumnsHeaders.GetLength(0); j++)
                {
                    if (i == 0)
                    {
                        XPSHelper.WriteTextBlockToGrid(ResultColumnsHeaders[j], grid, i, j + 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold, true);
                    }
                    else
                    {
                        XPSHelper.WriteTextBlockToGrid(m_ReportData.GetResultCellValue(i - 1, j), grid, i, j + 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize);
                    }
                }
            }

            return(m_ReportDocument.WriteRowContent(grid));
        }
Beispiel #2
0
        /// <summary>method write phone row of address column to address column grid
        /// </summary>
        /// <param name="grid">address column grid</param>
        /// <param name="rows">array of row's strings</param>
        /// <param name="rowIndex">row index</param>
        private void WritePhoneRow(Grid grid, string[] row, int rowIndex)
        {
            int       i;
            TextBlock text;

            int colCount = row.GetLength(0);

            GridLength[] colWidth = new GridLength[colCount];
            for (i = 0; i < colCount; i++)
            {
                if (i % 2 == 0)
                {
                    colWidth[i] = GridLength.Auto;
                }
                else
                {
                    colWidth[i] = new GridLength(0.8 * ReportPage.DisplayResolution);
                }
            }
            Grid childGrid = XPSHelper.GetGrid(colWidth, 1);

            childGrid.Margin = new Thickness(m_HorMargin, 0, 0, 0);
            for (i = 0; i < colCount; i++)
            {
                text            = XPSHelper.WriteTextBlockToGrid(row[i], childGrid, 0, i, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness((i % 2 == 0 ? 0 : 3), (rowIndex == 2 ? 0 : -5.0), 0, 0), m_FontSize);
                text.FontWeight = (i % 2 == 0 ? FontWeights.Normal : FontWeights.Bold);
            }
            XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, 0);
        }
        /// <summary>method initilize document grid
        /// </summary>
        private void SetupDocumentLayout()
        {
            Border bodyBorder = XPSHelper.GetBorder(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, new Thickness(m_MarginSize * 3, m_MarginSize * 3, m_MarginSize * 3, m_MarginSize * 3), null, new Thickness(m_PageBorderThickness));

            m_BodyRoot       = new StackPanel();
            bodyBorder.Child = m_BodyRoot;

            m_DocTitle = XPSHelper.GetTextBlock(m_PageTitle, HorizontalAlignment.Center, VerticalAlignment.Top, new Thickness(m_MarginSize * 3, m_MarginSize * 3, m_MarginSize * 3, 0), m_FontSize * 1.4, null, FontWeights.Bold);
            m_BodyRoot.Children.Add(m_DocTitle);

            string patientName = string.Format("Patient Name: {0}, {1}", this.m_PlacentalPathologyData.PLastName, this.m_PlacentalPathologyData.PFirstName);

            m_PatientName = XPSHelper.GetTextBlock(patientName, HorizontalAlignment.Center, VerticalAlignment.Top, new Thickness(m_MarginSize * 3, m_MarginSize, m_MarginSize * 3, m_MarginSize * 3), m_FontSize * 1.4, null, FontWeights.Bold);
            m_BodyRoot.Children.Add(m_PatientName);

            m_DemographicGrid = XPSHelper.GetGrid(m_DemographicGridColWidth, m_DemographicGridRowsCount, 0.0, new Thickness(m_MarginSize * 3, 0, m_MarginSize * 3, m_MarginSize * 3));
            m_BodyRoot.Children.Add(m_DemographicGrid);

            m_IndicationsGrid = XPSHelper.GetGrid(m_IndicationsGridRowsCount, m_IndicationsGridColCount, 0.0, new Thickness(m_MarginSize * 3, 0, m_MarginSize * 3, m_MarginSize * 3));
            m_BodyRoot.Children.Add(m_IndicationsGrid);

            GridLength[] gridLegths = new GridLength[] { new GridLength(DateTimeColWidth * ReportPage.DisplayResolution), new GridLength(DateTimeColWidth * ReportPage.DisplayResolution), new GridLength(1, GridUnitType.Star), GridLength.Auto };
            m_DateTimeSignGrid = XPSHelper.GetGrid(gridLegths, 1, 0.0, new Thickness(m_MarginSize * 3, m_MarginSize * 3, m_MarginSize * 6, m_MarginSize * 3));
            m_BodyRoot.Children.Add(m_DateTimeSignGrid);

            m_ReportDocument.WriteBorder(bodyBorder);
        }
        /// <summary>method write "Gross/Complete Exam" group to "Democratic History" section
        /// </summary>
        /// <param name="rowNo">base grid row number of group</param>
        private void WriteExam1Group(int rowNo)
        {
            Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1);

            XPSHelper.WriteItemToGrid(grid, m_DemographicGrid, rowNo, 0, 0, 2);
            WriteCheckBox(grid, "Gross Examination Only", this.m_PlacentalPathologyData.GrossExam, 0, 0);
            WriteCheckBox(grid, "Complete Examination (Includes Gross and Microscopic)", this.m_PlacentalPathologyData.CompleteExam, 0, 1);
        }
        /// <summary>method write "Cytogenetics/Other Exam" group to "Democratic History" section
        /// </summary>
        /// <param name="rowNo">base grid row number of group</param>
        private void WriteExam2Group(int rowNo)
        {
            Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1);

            XPSHelper.WriteItemToGrid(grid, m_DemographicGrid, rowNo, 0, 0, 2);
            WriteCheckBox(grid, "Cytogenetics", this.m_PlacentalPathologyData.Cytogenetics, 0, 0);
            WriteCheckBoxAndTextBlock(grid, "Other", this.m_PlacentalPathologyData.OtherExam, 0, 1);
        }
        /// <summary>method write diagnosis comment
        /// </summary>
        /// <param name="commentBody">diagnosis comment body text</param>
        /// <param name="fontSize">diagnosis comment font size</param>
        /// <param name="leftMargin">diagnosis comment left margin</param>
        /// <param name="topMargin">diagnosis comment top margin</param>
        private void WriteDiagnosisComment(string commentBody, double fontSize, double leftMargin, double topMargin)
        {
            Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.8 }), 1, 0, new Thickness(leftMargin, topMargin, 0, 0));

            XPSHelper.WriteTextBlockToGrid(CommentLabel, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(commentBody, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, null, false, true);
            m_ReportDocument.WriteRowContent(grid);
        }
        /// <summary>method write "Apgar" group to "Democratic History" section
        /// </summary>
        /// <param name="rowNo">base grid row number of group</param>
        private void WriteApgarGroup(int rowNo)
        {
            Grid grid = XPSHelper.GetGrid(new double[] { 1.3, 0.9, 1.0 }, 1);

            XPSHelper.WriteItemToGrid(grid, m_DemographicGrid, rowNo, 0);
            WriteLabelAndTextBlock(grid, "Apgar 1 min", this.m_PlacentalPathologyData.Apgar1Min, 0, 0);
            WriteLabelAndTextBlock(grid, "5 min", this.m_PlacentalPathologyData.Apgar5Min, 0, 1, false);
            WriteLabelAndTextBlock(grid, "10 min", this.m_PlacentalPathologyData.Apgar10Min, 0, 2, false);
        }
        /// <summary>method write block with check box and text block to document grid
        /// </summary>
        /// <param name="baseGrid">block's parent grid</param>
        /// <param name="labelText">label of check box</param>
        /// <param name="stringXMLElementName">XML element name with text block value</param>
        /// <param name="rowNo">parent grid row number of block</param>
        /// <param name="colNo">parent grid column number of block</param>
        private void WriteCheckBoxAndTextBlock(Grid baseGrid, string labelText, string textValue, int rowNo, int colNo)
        {
            //string textValue = (stringXMLElementName != string.Empty ? m_PlacentalPathologyData.Element(stringXMLElementName).Value : string.Empty);
            Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1, 0.0, new Thickness(0, 0, m_MarginSize * 4, 0));

            XPSHelper.WriteItemToGrid(grid, baseGrid, rowNo, colNo);
            XPSHelper.WriteCheckBox(labelText, (textValue != string.Empty), grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize * 2, m_MarginSize, m_MarginSize), m_FontSize, null, FontWeights.Normal);
            XPSHelper.WriteTextBlockToGrid(textValue, grid, 0, 1, HorizontalAlignment.Stretch, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize * 2, m_MarginSize, 0), m_FontSize);
            XPSHelper.WriteUnderliningToGridCell(grid, 0, 1);
        }
        /// <summary>method write "Gravida/Para" group to "Democratic History" section
        /// </summary>
        /// <param name="rowNo">base grid row number of group</param>
        private void WriteGravidaParaGroup(int rowNo)
        {
            double col1Width = m_DemographicGridColWidth[0] * 2 / 3;
            double col2Width = m_DemographicGridColWidth[0] - col1Width;
            Grid   grid      = XPSHelper.GetGrid(new double[] { col1Width, col2Width }, 1);

            XPSHelper.WriteItemToGrid(grid, m_DemographicGrid, rowNo, 0);
            WriteLabelAndTextBlock(grid, "Gravida", this.m_PlacentalPathologyData.Gravida, 0, 0);
            WriteLabelAndTextBlock(grid, "Para", this.m_PlacentalPathologyData.Para, 0, 1);
        }
Beispiel #10
0
        /// <summary>method initilize "Markers" section's main grid layout
        /// </summary>
        /// <param name="colWidth">array of column's lenght in inches</param>
        /// <returns>"Markers" section's main grid</returns>
        private Grid SetupMarkersGrid(double[] colWidth)
        {
            int markersCount = m_ReportData.MarkerRowsCount;
            int rowCount     = (markersCount / 2) + (markersCount % 2) + 1;

            Grid grid = XPSHelper.GetGrid(colWidth, rowCount);

            grid.Margin = new Thickness(m_LeftMargin, 0, 0, 0);

            return(grid);
        }
        /// <summary>method write block with label and value to document grid
        /// </summary>
        /// <param name="baseGrid">block's parent grid</param>
        /// <param name="labelText">string value in label part of block</param>
        /// <param name="value">string value in text part of block</param>
        /// <param name="rowNo">parent grid row number of block</param>
        /// <param name="colNo">parent grid column number of block</param>
        /// <param name="addBullet">if true, then bullet added before label part of block</param>
        /// <param name="colSpan">ColSpan parameter of parent grid cell</param>
        private static void WriteLabelAndTextBlock(Grid baseGrid, string labelText, string value, int rowNo, int colNo, bool addBullet = true, int colSpan = 0)
        {
            Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1);

            XPSHelper.WriteItemToGrid(grid, baseGrid, rowNo, colNo, 0, colSpan);
            string fullLabelText = string.Format("{0}{1}", (addBullet ? string.Format("{0} ", m_Bullet) : ""), labelText);

            XPSHelper.WriteTextBlockToGrid(fullLabelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize + 1, m_MarginSize, m_MarginSize - 1), m_FontSize);
            XPSHelper.WriteTextBlockToGrid(value, grid, 0, 1, HorizontalAlignment.Stretch, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize, m_MarginSize, m_MarginSize), m_FontSize);
            XPSHelper.WriteUnderliningToGridCell(grid, 0, 1);
        }
Beispiel #12
0
        /// <summary>method initilize "Cell Distribution/Blast Header" section's main grid layout
        /// </summary>
        /// <param name="colWidth">array of column's lenght in inches</param>
        /// <returns>"Markers" section's main grid</returns>
        private static Grid SetupCellDistributionBlastHeaderGrid(double[] colWidth)
        {
            int cellDistrRowCount   = LeukemiaLymphomaReportData.CellNames.Length;
            int reportBlastRowCount = LeukemiaLymphomaReportData.BlastNames.Length;
            int rowCount            = Math.Max(cellDistrRowCount, reportBlastRowCount) + 1;

            Grid grid = XPSHelper.GetGrid(colWidth, rowCount);

            grid.Margin = new Thickness(m_LeftMargin, 0, 0, 0);

            return(grid);
        }
Beispiel #13
0
        /// <summary>>method write section row (label/value block) to parent grid
        /// </summary>
        /// <param name="labelText">label text</param>
        /// <param name="valueText">value text</param>
        /// <param name="parentGrid">parent grid</param>
        /// <param name="rowNo">TextBlock cell row number in parent grid</param>
        /// <param name="colNo">TextBlock cell column number in parent grid</param>
        /// <param name="topMargin">top margin of "Cell Population Of Interest" section</param>
        protected static void WriteSectionRow(string labelText, string valueText, Grid parentGrid, double[] colWidth, int rowIndex, int colIndex, double topMargin = 0)
        {
            Grid grid = XPSHelper.GetGrid(colWidth, 1);

            grid.Margin = new Thickness(0, topMargin, 0, 0);

            TextBlock label = XPSHelper.WriteTextBlockToGrid(labelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize);

            label.FontWeight = FontWeights.Bold;
            XPSHelper.WriteTextBlockToGrid(valueText, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize);
            XPSHelper.WriteItemToGrid(grid, parentGrid, rowIndex, colIndex);
        }
        /// <summary>method write "Ancillary Studies" section
        /// </summary>
        private void WriteAncillaryStudiesSection()
        {
            WriteSimpleSectionWithTitle(AncillaryStudiesTitle, m_ReportData.AncillaryStudiesHeaderText);

            int  rowsCount = m_ReportData.AncillaryStudiesCount;
            Grid grid      = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.4, 2.1, 1.2 }), rowsCount * 3);

            for (int i = 0; i < rowsCount; i++)
            {
                WriteAncillaryStudyRow(grid, i);
            }
            m_ReportDocument.WriteRowContent(grid);
        }
Beispiel #15
0
        /// <summary>method write patient full display name and code
        /// </summary>
        /// <param name="grid">informational grid</param>
        private void WritePatientCode(Grid grid)
        {
            const int rowsCount = 1;

            GridLength[] colWidth = new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) };

            XPSHelper.WriteTextBlockToGrid("Patient:", grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Bottom, null, m_FontSize + 3);

            Grid childGrid = XPSHelper.GetGrid(colWidth, rowsCount);

            XPSHelper.WriteTextBlockToGrid(m_Data.GetPatientDisplayName(), childGrid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 10, 0), m_FontSize + 6, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_Data.GetPatientCode(), childGrid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 0, 1), m_FontSize + 1);
            XPSHelper.WriteItemToGrid(childGrid, grid, 0, 1);
        }
Beispiel #16
0
        /// <summary>method write "Result Data" and "Specimen Information" sections to document grid
        /// </summary>
        private void WriteResultDataAndSpecimenInformation()
        {
            const double leftMargin = m_LeftMargin;
            const double topMargin  = m_TopMargin;

            double[] colWidth = XPSHelper.GetFullWidthGridColWidthArray(new double[] { 3.4 }, leftMargin);
            Grid     grid     = XPSHelper.GetGrid(colWidth, 1);

            grid.Margin = new Thickness(leftMargin, topMargin, 0, 0);

            XPSHelper.WriteItemToGrid(WriteResultData(), grid, 0, 0);
            XPSHelper.WriteItemToGrid(WriteSpecimenInformation(), grid, 0, 1);
            m_ReportDocument.WriteRowContent(grid);
        }
Beispiel #17
0
        /// <summary>>method write section row (label/value block) to document grid
        /// </summary>
        /// <param name="labelText">label text</param>
        /// <param name="valueText">value text</param>
        /// <param name="topMargin">top margin of "Cell Population Of Interest" section</param>
        protected void WriteSectionRow(string labelText, string valueText, double topMargin = 0)
        {
            double[] colWidth = new double[] { 1.75, 5.0 };

            Grid grid = XPSHelper.GetGrid(colWidth, 1);

            grid.Margin = new Thickness(m_LeftMargin, topMargin, 0, 0);

            TextBlock label = XPSHelper.WriteTextBlockToGrid(labelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize);

            label.FontWeight = FontWeights.Bold;
            XPSHelper.WriteTextBlockToGrid(valueText, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize);
            m_ReportDocument.WriteRowContent(grid);
        }
Beispiel #18
0
        /// <summary>method write report's main box custom sections to document grid
        /// </summary>
        /// <returns>main box first row index</returns>
        protected override int WriteCustomSectionToMainBox()
        {
            const double fontSize = m_FontSize + 2;
            Grid         grid     = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 2.1 }), 3);

            WriteResultUnderlinedHeader(grid);

            int rowIndex = 1;

            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestNameText, grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, new Thickness(0, 5, 0, 0), fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(20, 5, 0, 0), fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.ResultCommentText, grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(20, 0, 5, 0), fontSize, null, FontWeights.Bold, false, true);

            return(m_ReportDocument.WriteRowContent(grid));
        }
Beispiel #19
0
        /// <summary>method write site column to document grid
        /// </summary>
        /// <param name="grid">document grid</param>
        private void WriteSiteColumn(Grid grid)
        {
            const int    rowIndex  = 2;
            const int    colIndex  = 2;
            const double topMargin = -0.7;

            HorizontalAlignment horAlign = m_ColAlign[colIndex];
            int  rowCount  = m_SiteRows.GetLength(0);
            Grid childGrid = XPSHelper.GetGrid(rowCount, 1);

            for (int i = 0; i < rowCount; i++)
            {
                XPSHelper.WriteTextBlockToGrid(m_SiteRows[i], childGrid, i, 0, horAlign, VerticalAlignment.Top, new Thickness(0, topMargin, m_HorMargin, 0), m_FontSize, m_RedishBrush);
            }
            XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, colIndex);
        }
Beispiel #20
0
        /// <summary>method return "Specimen Information" section grid
        /// </summary>
        private Grid WriteSpecimenInformation()
        {
            double[]  colWidth = new double[] { 1.3, 2.5 };
            Thickness margin   = new Thickness(10, 0, 0, 0);
            int       rowCount = SpecimenLabels.GetLength(0);

            Grid grid = XPSHelper.GetGrid(colWidth, rowCount + 1);

            int rowIndex = 0;

            XPSHelper.WriteTextBlockToGrid(SpecimenTitle, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(80, 0, 0, 0), m_FontSize, null, FontWeights.Bold, true, false, 0, 2);
            for (int i = 0; i < rowCount; i++)
            {
                XPSHelper.WriteTextBlockToGrid(SpecimenLabels[i], grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, null, m_FontSize);
                XPSHelper.WriteTextBlockToGrid(m_ReportData.GetSpecimenValue(i), grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, margin, m_FontSize);
            }
            return(grid);
        }
Beispiel #21
0
        /// <summary>method return "Result Data" section grid
        /// </summary>
        private Grid WriteResultData()
        {
            double[]  colWidth = new double[] { 2.1, 1.3 };
            Thickness margin   = new Thickness(10, 0, 0, 0);
            int       rowCount = ResultLabels.GetLength(0);

            Grid grid = XPSHelper.GetGrid(colWidth, rowCount + 1);

            int rowIndex = 0;

            XPSHelper.WriteTextBlockToGrid(ResultDataTitle, grid, rowIndex++, 0, HorizontalAlignment.Center, VerticalAlignment.Top, null, m_FontSize, null, FontWeights.Bold, true, false, 0, 2);
            for (int i = 0; i < rowCount; i++)
            {
                XPSHelper.WriteTextBlockToGrid(ResultLabels[i], grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, null, m_FontSize);
                XPSHelper.WriteTextBlockToGrid(m_ReportData.GetResultValue(i), grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, margin, m_FontSize);
            }
            return(grid);
        }
Beispiel #22
0
        /// <summary>method write report's amendment sections
        /// </summary>
        /// <param name="amendment">XML element with amendment parameters</param>
        /// <param name="haveTop">if true, then amendment box have top edge</param>
        private void WriteAmendmentBox(XElement amendment, bool haveTop)
        {
            Grid   grid     = XPSHelper.GetGrid(2, 1, ReportPage.ReportWidth - 2.0 * m_LeftMargin / ReportPage.DisplayResolution);
            int    rowIndex = 0;
            string title    = string.Format("{0}: {1}", amendment.Element(YpReportDataBase.AmendmentType).Value, amendment.GetDateTime(YpReportDataBase.AmendmentTime, "MM/dd/yyyy - HH:mm"));

            XPSHelper.WriteTextBlockToGrid(title, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_LeftMargin + 6, 5, 0, 0), m_FontSize + 2, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(amendment.Element(YpReportDataBase.AmendmentText).Value, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_LeftMargin + 6, 2, 0, 0), m_FontSize + 2, null, null, false, true);
            int startRow = m_ReportDocument.WriteRowContent(grid);

            TextBlock sign = XPSHelper.GetTextBlock(amendment.Element(YpReportDataBase.AmendmentPathologistSignature).Value, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_SignLeftMargin, m_TopMargin, m_SignRightMargin, m_VerticalGap), m_FontSize + 2);

            m_ReportDocument.WriteRowContent(sign);
            TextBlock esign  = XPSHelper.GetTextBlock(m_ElectronicSignatureLabelText, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_SignLeftMargin + 20, 0, m_SignRightMargin, m_VerticalGap + m_TopMargin), m_FontSize - 2);
            int       endRow = m_ReportDocument.WriteRowContent(esign) + 1;

            WriteBoxBorder(startRow, endRow, haveTop);
        }
Beispiel #23
0
        /// <summary>method write content to logo grid
        /// </summary>
        /// <param name="grid">root report header grid</param>
        private void WriteLogoGrid(Grid grid)
        {
            const int rowsCount = 2;

            double[] сolWidth = new double[] { 2.5, 4.0, 1.0 };

            Grid logoGrid = XPSHelper.GetGrid(сolWidth, rowsCount);

            logoGrid.RowDefinitions[0].Height = new GridLength(1, GridUnitType.Auto);                           //0.2 * ReportPage.DisplayResolution
            logoGrid.RowDefinitions[1].Height = new GridLength(1, GridUnitType.Star);                           //0.1 * ReportPage.DisplayResolution
            //logoGrid.RowDefinitions[2].Height = new GridLength(7, GridUnitType.Star);		//0.1 * ReportPage.DisplayResolution
            XPSHelper.WriteItemToGrid(logoGrid, grid, 0, 0);

            WriteLogo(logoGrid);
            WriteReportName(logoGrid);
            //if (m_Data.HasAmendments) WriteAmendmentLabel(logoGrid);
            WriteReportNo(logoGrid);
        }
Beispiel #24
0
        /// <summary>method write report's main box custom sections to document grid
        /// </summary>
        protected override int WriteCustomSectionToMainBox()
        {
            const double fontSize = m_FontSize + 2;

            Thickness rowMargin = new Thickness(0, -3, 0, 0);
            Grid      grid      = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.7, 0.55, 4.0, 0.8, 0.3 }), 5);

            WriteResultUnderlinedHeader(grid);

            int rowIndex = 2;

            XPSHelper.WriteTextBlockToGrid(TestNameText, grid, rowIndex, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultValue, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, rowMargin, fontSize, null, FontWeights.Bold);

            WriteReferenceTableSectionToMainBox(grid, fontSize, rowMargin);

            return(m_ReportDocument.WriteRowContent(grid));
        }
Beispiel #25
0
        /// <summary>method write report's main box custom sections to document grid
        /// </summary>
        protected override int WriteCustomSectionToMainBox()
        {
            const double fontSize   = m_FontSize + 2;
            const double leftMargin = m_LeftMargin + 18;
            const double topMargin  = m_TopMargin + 6;
            const int    rowCount   = 3;

            Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.5, 1.5 }, m_LeftMargin), rowCount);

            grid.Margin = new Thickness(leftMargin, topMargin, 0, 0);

            int rowIndex = 0;

            XPSHelper.WriteTextBlockToGrid(YpReportBase.ResultLabel, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold, false, false, 0, 3);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestNameText, grid, rowIndex, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);
            XPSHelper.WriteTextBlockToGrid(m_ReportData.ResultCommentText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold);

            return(m_ReportDocument.WriteRowContent(grid));
        }
Beispiel #26
0
        /// <summary>method write "Report Distribution" section to document grid
        /// </summary>
        protected void WriteReportDistributionSection(IEnumerable <XElement> reportDistributions)
        {
            double[] colWidth = new double[] { ReportPage.ReportWidth / 2 - (2.0 * m_LeftMargin / ReportPage.DisplayResolution) };
            int      rowCount = reportDistributions.Count();

            TextBlock sectionTitle = XPSHelper.GetTextBlock(ReportDistributionLabel, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize, null, FontWeights.Bold, true);
            Grid      grid         = XPSHelper.GetGrid(colWidth, rowCount);

            for (int i = 0; i < rowCount; i++)
            {
                XPSHelper.WriteTextBlockToGrid(reportDistributions.ElementAt(i).Value, grid, i, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize);
            }
            StackPanel stackPanel = new StackPanel()
            {
                Orientation = Orientation.Vertical, Margin = new Thickness(m_LeftMargin, m_TopMargin, 0, 0)
            };

            stackPanel.Children.Add(sectionTitle);
            stackPanel.Children.Add(grid);
            m_ReportDocument.WriteRowContent(stackPanel);
        }
Beispiel #27
0
        /// <summary>method write content to informational grid
        /// </summary>
        /// <param name="grid">root report header grid</param>
        private void WriteInformGrid(Grid grid)
        {
            int rowsCount = 6;

            double[]  colWidth  = new double[] { 0.7, 3.8, 1.5, 1.5 };
            const int topMargin = 2;

            Grid childGrid = XPSHelper.GetGrid(colWidth, rowsCount);

            childGrid.Margin = new Thickness(m_HorMargin, topMargin, 0, 0);
            XPSHelper.WriteItemToGrid(childGrid, grid, 1, 0);

            WritePatientCode(childGrid);
            WriteLabelAndTextBlock1(childGrid, 2, "Provider:", m_Data.GetStringValue(ReportHeaderData.Provider));
            WriteLabelAndTextBlock1(childGrid, 3, string.Empty, m_Data.GetStringValue("ClientName"));
            WriteLabelAndTextBlock1(childGrid, 5, string.Empty, "Full distribution list is provided at the end of the report.", m_FontSize, true);
            WriteLabelAndTextBlock2(childGrid, 1, "Master Accession #:", m_Data.GetStringValue(ReportHeaderData.MasterAccessionNo));
            WriteLabelAndTextBlock2(childGrid, 2, "Date of report:", m_Data.FinalTimeString);
            WriteLabelAndTextBlock2(childGrid, 3, "Accessioned:", m_Data.GetDateTime("AccessionTime"));
            WriteLabelAndTextBlock2(childGrid, 4, "Collected:", m_Data.GetDateTime("CollectionTime", "MM/dd/yyyy"));
            WriteLabelAndTextBlock2(childGrid, 5, "Client Ref #:", m_Data.GetStringValue(ReportHeaderData.ClientRefNumber));
        }
Beispiel #28
0
        /// <summary>method write address column to document grid
        /// </summary>
        /// <param name="rows">array of rows strings</param>
        /// <param name="grid">document grid</param>
        /// <param name="colIndex">column index</param>
        private void WriteAddressColumn(string[][] rows, Grid grid, int colIndex)
        {
            const int rowIndex = 2;

            int colCount;
            HorizontalAlignment horAlign = m_ColAlign[colIndex];
            int rowCount = rows.GetLength(0);

            Grid childGrid = XPSHelper.GetGrid(rowCount, 1);

            for (int i = 0; i < rowCount; i++)
            {
                colCount = rows[i].GetLength(0);
                if (colCount == 1)
                {
                    XPSHelper.WriteTextBlockToGrid(rows[i][0], childGrid, i, 0, horAlign, VerticalAlignment.Top, new Thickness(m_HorMargin, (i == 1 ? -5.0 : 0), 0, 0), m_FontSize + 1, m_GreenishBrush);
                }
                else
                {
                    WritePhoneRow(childGrid, rows[i], i);
                }
            }
            XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, colIndex);
        }