public static void AddRule(MedQCRule medQCRule) { if (m_htRuleTable == null) { m_htRuleTable = new Hashtable(); } string szRuleID = medQCRule.RuleID.Trim(); BugCheckRule qcRule = m_htRuleTable[szRuleID] as BugCheckRule; if (qcRule == null) { qcRule = new BugCheckRule(); qcRule.RuleID = szRuleID; m_htRuleTable.Add(szRuleID, qcRule); } qcRule.Operator = medQCRule.Operator; qcRule.BugKey = string.Empty; qcRule.BugLevel = (BugLevel)medQCRule.BugLevel; qcRule.BugDesc = medQCRule.BugDesc; qcRule.Response = medQCRule.Response; if (!GlobalMethods.Misc.IsEmptyString(medQCRule.RuleID1)) { string szSubRule1ID = medQCRule.RuleID1.Trim(); BugCheckRule qcSubRule1 = m_htRuleTable[szSubRule1ID] as BugCheckRule; if (qcSubRule1 == null) { qcSubRule1 = new BugCheckRule(); qcSubRule1.RuleID = szSubRule1ID; m_htRuleTable.Add(szSubRule1ID, qcSubRule1); } qcRule.SubRule1 = qcSubRule1; } if (!GlobalMethods.Misc.IsEmptyString(medQCRule.RuleID2)) { string szSubRule2ID = medQCRule.RuleID2.Trim(); BugCheckRule qcSubRule2 = m_htRuleTable[szSubRule2ID] as BugCheckRule; if (qcSubRule2 == null) { qcSubRule2 = new BugCheckRule(); qcSubRule2.RuleID = szSubRule2ID; m_htRuleTable.Add(szSubRule2ID, qcSubRule2); } qcRule.SubRule2 = qcSubRule2; } if (!GlobalMethods.Misc.IsEmptyString(medQCRule.EntryID)) { string szEntryID = medQCRule.EntryID.Trim(); BugCheckEntry qcEntry = BugCheckEntryManager.GetEntry(szEntryID); if (qcEntry == null) { return; } qcRule.RuleEntry = qcEntry; } if (!GlobalMethods.Misc.IsEmptyString(medQCRule.RefRuleID)) { string szResultRuleID = medQCRule.RefRuleID.Trim(); BugCheckRule qcResultRule = m_htRuleTable[szResultRuleID] as BugCheckRule; if (qcResultRule == null) { qcResultRule = new BugCheckRule(); qcResultRule.RuleID = szResultRuleID; m_htRuleTable.Add(szResultRuleID, qcResultRule); } qcRule.RefRule = qcResultRule; } }
/// <summary> /// 获取文档质控规则列表 /// </summary> /// <param name="lstQCRules">质控规则列表</param> /// <returns>SystemData.ReturnValue</returns> public short GetQCRuleList(ref List <MedQCRule> lstQCRules) { if (base.MeddocAccess == null) { return(SystemData.ReturnValue.PARAM_ERROR); } string szField = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}" , SystemData.QCRuleTable.RULE_ID, SystemData.QCRuleTable.RULE_ID1, SystemData.QCRuleTable.OPERATOR , SystemData.QCRuleTable.RULE_ID2, SystemData.QCRuleTable.ENTRY_ID, SystemData.QCRuleTable.REF_RULE , SystemData.QCRuleTable.BUG_LEVEL, SystemData.QCRuleTable.BUG_DESC, SystemData.QCRuleTable.RESPONSE); string szSQL = string.Format(SystemData.SQL.SELECT_FROM, szField, SystemData.DataTable.QC_RULE); IDataReader dataReader = null; try { dataReader = base.MeddocAccess.ExecuteReader(szSQL, CommandType.Text); if (dataReader == null || dataReader.IsClosed || !dataReader.Read()) { return(SystemData.ReturnValue.RES_NO_FOUND); } if (lstQCRules == null) { lstQCRules = new List <MedQCRule>(); } do { MedQCRule clsQCRule = new MedQCRule(); clsQCRule.RuleID = dataReader.GetString(0).Trim(); if (!dataReader.IsDBNull(1)) { clsQCRule.RuleID1 = dataReader.GetString(1).Trim(); } if (!dataReader.IsDBNull(2)) { clsQCRule.Operator = dataReader.GetString(2).Trim(); } if (!dataReader.IsDBNull(3)) { clsQCRule.RuleID2 = dataReader.GetString(3).Trim(); } if (!dataReader.IsDBNull(4)) { clsQCRule.EntryID = dataReader.GetString(4).Trim(); } if (!dataReader.IsDBNull(5)) { clsQCRule.RefRuleID = dataReader.GetString(5).Trim(); } if (!dataReader.IsDBNull(6)) { clsQCRule.BugLevel = int.Parse(dataReader.GetValue(6).ToString()); } if (!dataReader.IsDBNull(7)) { clsQCRule.BugDesc = dataReader.GetString(7).Trim(); } if (!dataReader.IsDBNull(8)) { clsQCRule.Response = dataReader.GetString(8).Trim(); } lstQCRules.Add(clsQCRule); } while (dataReader.Read()); return(SystemData.ReturnValue.OK); } catch (Exception ex) { LogManager.Instance.WriteLog("MedQCAccess.GetQCRuleList", new string[] { "szSQL" }, new object[] { szSQL }, ex); return(SystemData.ReturnValue.EXCEPTION); } finally { base.MeddocAccess.CloseConnnection(false); } }