예제 #1
0
        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;
            }
        }
예제 #2
0
        /// <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); }
        }