コード例 #1
0
 private void WriteSecondaryRow(int i, KeyValuePair <string, TypeString> kvp, Table table)
 {
     table.Rows[i].Cells[0].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize);
     table.Rows[i].Cells[1].Paragraphs[0].Append(kvp.Value.Message).FontSize(cellParagraphSize);
     //норма
     if (normaStorage.Norma.ContainsKey(kvp.Key))
     {
         table.Rows[i].Cells[2].Paragraphs[0].Append(normaStorage.Norma[kvp.Key]).FontSize(cellParagraphSize);
         if (ConstTableName.IsBold(normaStorage.Norma[kvp.Key], kvp.Value.Message))
         {
             table.Rows[i].Cells[1].Paragraphs[0].Bold();
         }
     }
     //норма индексов
     if (normaStorage.NormaIndex.ContainsKey(kvp.Key))
     {
         table.Rows[i].Cells[4].Paragraphs[0].Append(normaStorage.NormaIndex[kvp.Key]).FontSize(cellParagraphSize);
         if (!_defaultIndex.indexes.ContainsKey(kvp.Key))
         {
             return;
         }
         if (ConstTableName.IsBold(normaStorage.NormaIndex[kvp.Key], _defaultIndex.indexes[kvp.Key]))
         {
             table.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.indexes[kvp.Key]).FontSize(cellParagraphSize).Bold();
         }
         else
         {
             table.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.indexes[kvp.Key]).FontSize(cellParagraphSize);
         }
     }
     i++;
 }
コード例 #2
0
        public void AddTable()
        {
            IDictionary <string, TypeString> temp = new Dictionary <string, TypeString>();

            _patient.Dopper.GetNotNullField("", ref temp);
            temp.Add("1", new TypeString {
                Message = "", TypeName = nameof(RightStomachFunction)
            });
            temp.Add("2", new TypeString {
                Message = "", TypeName = nameof(LeftStomachFunction)
            });
            if (temp.Count == 0)
            {
                return;
            }
            int   count         = temp.Where(x => x.Value.TypeName == nameof(Dopper)).Count();
            Table additionTable = _document.InsertTable(count + 1, 5);

            additionTable.Rows[0].Cells[0].Paragraphs[0].Append("Допплер КС:").FontSize(paragraphSize).Bold();
            additionTable.Rows[0].Cells[1].Paragraphs[0].Append("Пиковая скорость").FontSize(paragraphSize).Bold();
            additionTable.Rows[0].Cells[2].Paragraphs[0].Append("Норма\n(см.сек)").FontSize(paragraphSize).Bold();
            additionTable.Rows[0].Cells[3].Paragraphs[0].Append("МГД \n(мм рт.ст.)").FontSize(paragraphSize).Bold();
            additionTable.Rows[0].Cells[4].Paragraphs[0].Append("CГД \n(мм рт.ст.)").FontSize(paragraphSize).Bold();
            SetTableStyle(additionTable);
            foreach (var cell in additionTable.Rows.Skip(1).Take(temp.Count))
            {
                cell.Cells[2].FillColor = Color.LightGray;
                cell.Cells[4].FillColor = Color.LightGray;
            }
            int    i        = 1;
            bool   isWrite  = false;
            var    first    = temp.FirstOrDefault().Value.TypeName;
            string typeName = first;

            foreach (var kvp in temp)
            {
                if (typeName != kvp.Value.TypeName)
                {
                    if (typeName == nameof(DegreeReguliration))
                    {
                        i++;
                    }
                    typeName = kvp.Value.TypeName;
                    isWrite  = false;
                }
                switch (kvp.Value.TypeName)
                {
                case nameof(Dopper):
                    additionTable.Rows[i].Cells[0].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize);

                    additionTable.Rows[i].Cells[1].Paragraphs[0].Append(kvp.Value.Message).FontSize(cellParagraphSize);
                    if (ConstTableName.IsBold(normaStorage.normaDopper[kvp.Key], kvp.Value.Message))
                    {
                        additionTable.Rows[i].Cells[1].Paragraphs[0].Bold();
                    }
                    additionTable.Rows[i].Cells[2].Paragraphs[0].Append(normaStorage.normaDopper[kvp.Key]).FontSize(cellParagraphSize);
                    additionTable.Rows[i].Cells[3].Paragraphs[0].Append(_defaultIndex.mgd[kvp.Key]).FontSize(cellParagraphSize);
                    additionTable.Rows[i].Cells[4].Paragraphs[0].Append(_defaultIndex.sgd[kvp.Key]).FontSize(cellParagraphSize);
                    i++;
                    break;

                case nameof(LeftStomachFunction):
                    cellData = _patient.LeftStomachFunction.GetNotNullField("LS");
                    if (string.IsNullOrWhiteSpace(_patient.LeftStomachFunction.PickA))
                    {
                        break;
                    }
                    _document.InsertParagraph().FontSize(2);
                    CreateAndFillTable(cellData);
                    break;

                case nameof(RightStomachFunction):
                    cellData = _patient.RightStomachFunction.GetNotNullField("RSF");
                    if (string.IsNullOrWhiteSpace(_patient.RightStomachFunction.PickA))
                    {
                        break;
                    }
                    _document.InsertParagraph().FontSize(2);
                    CreateAndFillTable(cellData);
                    break;

                default:
                    break;
                }
            }
            if (count == 0)
            {
                additionTable.RemoveRow(0);
            }
            int dgCount = 0;
            int dg      = 0;

            temp.Clear();
            _patient.DegreeReguliration.GetNotNullField("DR", ref temp);
            dgCount = temp.Count();

            _patient.CommentaryMV.GetNotNullField("", ref temp);
            if (temp.Count == 0)
            {
                return;
            }
            _document.InsertParagraph().FontSize(2);
            var   cc = temp.Select(x => x.Value.TypeName).Distinct();
            Table tt = _document.InsertTable(cc.Count(), 5);

            i = 0;
            SetTableStyle(tt);
            foreach (var kvp in temp)
            {
                if (typeName != kvp.Value.TypeName)
                {
                    if (typeName == nameof(DegreeReguliration))
                    {
                        i++;
                    }
                    typeName = kvp.Value.TypeName;
                    isWrite  = false;
                }
                switch (kvp.Value.TypeName)
                {
                case nameof(DegreeReguliration):
                    dg++;
                    if (!isWrite)
                    {
                        tt.Rows[i].MergeCells(0, 4);
                        tt.Rows[i].Cells[0].Paragraphs[0].Append("Регургитации на клапанах").FontSize(cellParagraphSize).Bold();
                        tt.Rows[i].Paragraphs[0].Append("\n").Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize).Append("\n");
                        isWrite = true;
                        continue;
                    }
                    tt.Rows[i].Paragraphs[0].Append(ConstTableName.parametrs[kvp.Key]).FontSize(cellParagraphSize);
                    if (dg != dgCount)
                    {
                        tt.Rows[i].Paragraphs[0].Append("\n");
                    }
                    break;

                case nameof(CommentaryMV):
                    tt.Rows[i].MergeCells(0, 4);
                    tt.Rows[i].Cells[0].Paragraphs[0].Append("Комментарии:").FontSize(cellParagraphSize).Bold();
                    tt.Rows[i].Paragraphs[0].Append("\n").Append(kvp.Value.Message).FontSize(cellParagraphSize);
                    break;

                default:
                    break;
                }
            }
        }