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), @"年稳定性"); }
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; } }
/// <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; } }
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; }
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); } }