コード例 #1
0
        public void WriteCriterionToStatistic(MSExcel._Workbook _excelDoc, int sheetIndex, NormalDoseCriterion cri, int columnIndex)
        {
            string volText = "";
            string halfLayerText = "";

            switch (cri.Voltage)
            {
                case "40kV":
                    volText = @"40kV";
                    halfLayerText = @"1.42";
                    break;
                case "50kV":
                    volText = @"50kV";
                    halfLayerText = @"1.78";
                    break;
                case "60kV":
                    volText = @"60kV";
                    halfLayerText = @"2.19";
                    break;
                case "70kV":
                    volText = @"70kV";
                    halfLayerText = @"2.58";
                    break;
                case "80kV":
                    volText = @"80kV";
                    halfLayerText = @"3.01";
                    break;
                case "90kV":
                    volText = @"90kV";
                    halfLayerText = @"3.48";
                    break;
                case "100kV":
                    volText = @"100kV";
                    halfLayerText = @"3.97";
                    break;
                case "120kV":
                    volText = @"120kV";
                    halfLayerText = @"5.00";
                    break;
                case "140kV":
                    volText = @"140kV";
                    halfLayerText = "";
                    break;
                case "150kV":
                    volText = @"150kV";
                    halfLayerText = @"6.57";
                    break;
                default:
                    LogHelper.AddException("在统计页写入第" + columnIndex + "列的数据时遇到无法识别的规范:" + cri.Voltage, true);
                    break;
            }
            if (volText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(5, columnIndex), volText);
            }
            if (halfLayerText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(6, columnIndex), halfLayerText);
            }
            WriteValue(_excelDoc, sheetIndex, new ExcelPosition(7, columnIndex), @"校准因子");
            WriteValue(_excelDoc, sheetIndex, new ExcelPosition(7, columnIndex + 1), @"年稳定性");
        }
コード例 #2
0
        public bool GetCriterion(MSExcel._Workbook _excelDoc, int sheetIndex, int columnIndex, bool writeCriToData, out string criText, out NormalDoseCriterion crit)
        {
            //确定数据的规范
            NormalDoseCriterion dataCri = NormalDoseCriterion.Null;
            string text = ((MSExcel._Worksheet)_excelDoc.Sheets[sheetIndex]).Name;

            if (text != "标准模板")
            {
                if (text == "统计")
                {
                    text = GetText(_excelDoc, sheetIndex, new ExcelPosition(5, columnIndex));
                    if (text.EndsWith("kV"))
                    {
                        text = text.Replace("kV", "").Trim();
                        switch (text)
                        {
                            case "40":
                                dataCri = NormalDoseCriterion.RQR2_40;
                                break;
                            case "50":
                                dataCri = NormalDoseCriterion.RQR3_50;
                                break;
                            case "60":
                                dataCri = NormalDoseCriterion.RQR4_60;
                                break;
                            case "70":
                                dataCri = NormalDoseCriterion.RQR5_70;
                                break;
                            case "80":
                                dataCri = NormalDoseCriterion.RQR6_80;
                                break;
                            case "90":
                                dataCri = NormalDoseCriterion.RQR7_90;
                                break;
                            case "100":
                                dataCri = NormalDoseCriterion.RQR8_100;
                                break;
                            case "120":
                                dataCri = NormalDoseCriterion.RQR9_120;
                                break;
                            case "140":
                                dataCri = NormalDoseCriterion.RQR_140;
                                break;
                            case "150":
                                dataCri = NormalDoseCriterion.RQR10_150;
                                break;
                        }
                    }
                }
                else
                {
                    text = GetText(_excelDoc, sheetIndex, new ExcelPosition(13, columnIndex));
                    if (text.Contains("140"))
                    {
                        dataCri = NormalDoseCriterion.RQR_140;
                    }
                    else
                    {
                        if (text.Contains("kV"))
                        {
                            string text1 = text.Split(new string[] { "kV" }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();
                            //GetText(_excelDoc, sheetIndex, DataUtility.DataUtility.PositionString(14, columnIndex), out checkClear);
                            if (text1.Contains("."))
                            {
                                text1 = text1.Substring(0, text1.LastIndexOf('.'));
                            }
                            int charindex = -1;
                            for (int i = 0; i < text1.Length; i++)
                            {
                                if (!DataUtility.DataUtility.IsCharNumber(text1[i]))
                                {
                                    charindex = i;
                                }
                            }
                            if (charindex > -1)
                            {
                                text1 = text1.Substring(charindex + 1);
                            }
                            switch (text1)
                            {
                                case "40":
                                    dataCri = NormalDoseCriterion.RQR2_40;
                                    break;
                                case "50":
                                    dataCri = NormalDoseCriterion.RQR3_50;
                                    break;
                                case "54":
                                    dataCri = NormalDoseCriterion.RQR4_60;
                                    //if (text1.Contains("60"))
                                    //{
                                    //    dataCri = Criterion.RQR4_60;
                                    //}
                                    break;
                                case "60":
                                    dataCri = NormalDoseCriterion.RQR4_60;
                                    break;
                                case "65":
                                    dataCri = NormalDoseCriterion.RQR5_70;
                                    //if (text1.Contains("70"))
                                    //{
                                    //    dataCri = Criterion.RQR5_70;
                                    //}
                                    break;
                                case "70":
                                    dataCri = NormalDoseCriterion.RQR5_70;
                                    break;
                                case "76":
                                    dataCri = NormalDoseCriterion.RQR6_80;
                                    //if (text1.Contains("80"))
                                    //{
                                    //    dataCri = Criterion.RQR6_80;
                                    //}
                                    break;
                                case "80":
                                    dataCri = NormalDoseCriterion.RQR6_80;
                                    break;
                                case "90":
                                    dataCri = NormalDoseCriterion.RQR7_90;
                                    break;
                                case "97":
                                    dataCri = NormalDoseCriterion.RQR8_100;
                                    //if (text1.Contains("100"))
                                    //{
                                    //    dataCri = Criterion.RQR8_100;
                                    //}
                                    break;
                                case "100":
                                    dataCri = NormalDoseCriterion.RQR8_100;
                                    break;
                                case "120":
                                    dataCri = NormalDoseCriterion.RQR9_120;
                                    //if (text1.Contains("120"))
                                    //{
                                    //    dataCri = Criterion.RQR9_120;
                                    //}
                                    break;
                                case "140":
                                    dataCri = NormalDoseCriterion.RQR_140;
                                    //if (text1.Contains("140"))
                                    //{
                                    //    dataCri = Criterion.RQR_140;
                                    //}
                                    break;
                                case "150":
                                    dataCri = NormalDoseCriterion.RQR10_150;
                                    break;
                            }
                        }
                    }
                }
            }
            
            criText = text;
            crit = dataCri;
            if (crit != NormalDoseCriterion.Null)
            {
                if (writeCriToData)
                {
                    WriteCriterionToData(_excelDoc, sheetIndex, crit, columnIndex);
                }
                return true;
            }
            else
            {
                return false;
            }
        }
コード例 #3
0
 /// <summary>
 /// opt= 1:普通剂量数据页面
 /// opt= 2:普通CT数据页面
 /// opt= 3:统计页面
 /// </summary>
 /// <param name="crit"></param>
 /// <param name="option"></param>
 /// <returns></returns>
 public int GetColumnByCriterion(NormalDoseCriterion crit, int option)
 {
     if (option == 1)
     {
         switch (crit.Voltage)
         {
             case "60kV":
                 return 4;
             case "70kV":
                 return 6;
             case "80kV":
                 return 8;
             case "100kV":
                 return 10;
             case "120kV":
                 return 12;
             default:
                 LogHelper.AddException("获取列索引的规范不是剂量常用的规范", true);
                 return 16;
         }
     }
     else if (option == 2)
     {
         switch (crit.Voltage)
         {
             case "60kV":
                 return 4;
             case "80kV":
                 return 6;
             case "100kV":
                 return 8;
             case "120kV":
                 return 10;
             case "140kV":
                 return 12;
             default:
                 LogHelper.AddException("获取列索引的规范不是CT常用的规范", true);
                 return 16;
         }
     }
     else if (option == 3)
     {
         return crit.Column;
     }
     else
     {
         LogHelper.AddException("获取列索引时输入了不合法的选项", true);
         return 16;
     }
 }
コード例 #4
0
 public int AddNewCriterionItem(NormalDoseCriterion crit, ref Dictionary<NormalDoseCriterion, int> criList, int startIndex, out bool checkClear)
 {
     bool hasValueFlag = false;
     ArrayList availableNumber = new ArrayList();
     //可能插入的位置
     for (int i = startIndex; i < 23; i += 2)
     {
         availableNumber.Add(i);
     }
     //排除已占有的可能,并检查要加入的规范是否为已有的内容
     foreach (KeyValuePair<NormalDoseCriterion, int> item in criList)
     {
         availableNumber.Remove(item.Value);
         if (item.Key == crit)
         {
             hasValueFlag = true;
         }
     }
     //寻找最靠前的空位插入规范
     if (!hasValueFlag && availableNumber.Count > 0)
     {
         int number = 23;
         foreach (int item in availableNumber)
         {
             if (item < number)
             {
                 number = item;
             }
         }
         criList.Add(crit, number);
         checkClear = true;
         return number;
     }
     checkClear = false;
     return 4;
 }
コード例 #5
0
        public void WriteCriterionToData(MSExcel._Workbook _excelDoc, int sheetIndex, NormalDoseCriterion cri, int columnIndex)
        {
            string criText = "";
            string volText = "";
            string halfLayerText = "";

            switch (cri.Voltage)
            {
                case "40kV":
                    criText = @"RQR2(40kV)";
                    volText = @"40kV";
                    halfLayerText = @"1.42";
                    break;
                case "50kV":
                    criText = @"RQR3(50kV)";
                    volText = @"50kV";
                    halfLayerText = @"1.78";
                    break;
                case "60kV":
                    criText = @"RQR4(54kV,250mA,1s)";
                    volText = @"60kV";
                    halfLayerText = @"2.19";
                    break;
                case "70kV":
                    criText = @"RQR5(70kV)";
                    volText = @"70kV";
                    halfLayerText = @"2.58";
                    break;
                case "80kV":
                    criText = @"RQR6(76kV,100mA,1s)";
                    volText = @"80kV";
                    halfLayerText = @"3.01";
                    break;
                case "90kV":
                    criText = @"RQR7(90kV)";
                    volText = @"90kV";
                    halfLayerText = @"3.48";
                    break;
                case "100kV":
                    criText = @"RQR8(97kV,63mA,1s)";
                    volText = @"100kV";
                    halfLayerText = @"3.97";
                    break;
                case "120kV":
                    criText = @"RQR9(120kV,50mA,1s)";
                    volText = @"120kV";
                    halfLayerText = @"5.00";
                    break;
                case "140kV":
                    criText = @"(140kV,32mA,1s)";
                    volText = @"140kV";
                    halfLayerText = "";
                    break;
                case "150kV":
                    criText = @"RQR10(150kV)";
                    volText = @"150kV";
                    halfLayerText = @"6.57";
                    break;
                default:
                    LogHelper.AddException("在数据页写入第" + columnIndex + "列的数据时遇到无法识别的规范:" + cri.Voltage, true);
                    break;
            }
            if (criText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(13, columnIndex), criText);
            }
            if (volText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(14, columnIndex), volText);
            }
            if (halfLayerText != "")
            {
                WriteValue(_excelDoc, sheetIndex, new ExcelPosition(15, columnIndex), halfLayerText);
            }
        }