Esempio n. 1
0
 void FillResult2Editor(QCResult result)
 {
     if (result == null)
     {
         return;
     }
     textBoxResultName.Text          = result.Name;
     comboBoxResultType.SelectedItem = e2cResultType.FindChineseEnum(result.ResultType as Enum);
     textBoxResultParams.Text        = result.JudgeSetting;
 }
Esempio n. 2
0
        void textBoxResultId_EditValueChanged(object sender, EventArgs e)
        {
            if (textBoxResultId.EditValue == null)
            {
                return;
            }
            QCResult qcr = QCResult.SelectQCResult(textBoxResultId.EditValue.ToString());

            FillResult2Editor(qcr);
            if (_currentRule != null)
            {
                _currentRule.Result = qcr;
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 保存指定规则结果
 /// </summary>
 /// <param name="result"></param>
 public void SaveResult(QCResult result)
 {
     if (result == null)
     {
         throw new ArgumentNullException("result");
     }
     SqlParameter[] sqlparams = InitQCResultParams(result);
     if (result.IsNew)
     {
         _sqlHelper.ExecuteNoneQuery(SQL_InsertResult, sqlparams);
     }
     else
     {
         _sqlHelper.ExecuteNoneQuery(SQL_UpdateResult, sqlparams);
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 取得指定结果的时限规则
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        public static List <QCRule> GetRulesByResult(QCResult result)
        {
            List <QCRule> ret = new List <QCRule>();


            foreach (QCRule qcr in _allRules)
            {
                if (qcr.Result == null)
                {
                    continue;
                }
                if (qcr.Result.Id == result.Id)
                {
                    ret.Add(qcr.Clone());
                }
            }
            return(ret);
        }
Esempio n. 5
0
        /// <summary>
        /// 数据行 -> 时限结果
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        public QCResult DataRow2QCResult(DataRow row)
        {
            if (row == null)
            {
                throw new ArgumentNullException("row");
            }
            string   resultId          = row[col_Code].ToString();
            string   resultDescription = row[col_Description].ToString();
            QCResult qcr = new QCResult(resultId, resultDescription);

            qcr.JudgeSetting = row[col_Result].ToString();
            qcr.TimeSetting  = row[col_Time].ToString();
            if (row[col_Category] == DBNull.Value)
            {
                qcr.ResultType = QCResultType.None;
            }
            else
            {
                qcr.ResultType = (QCResultType)(int.Parse(row[col_Category].ToString()) - ConstRes.cstResultTypeNo);
            }
            qcr.QCCode = row.IsNull(col_QCCode) ? string.Empty : row[col_QCCode].ToString();
            return(qcr);
        }
Esempio n. 6
0
        SqlParameter[] InitQCResultParams(QCResult result)
        {
            SqlParameter paramJgdm   = new SqlParameter(param_Code, SqlDbType.VarChar, 64);
            SqlParameter paramJgfl   = new SqlParameter(param_Category, SqlDbType.Int);
            SqlParameter paramJgms   = new SqlParameter(param_Description, SqlDbType.VarChar, 64);
            SqlParameter paramJgsz   = new SqlParameter(param_Result, SqlDbType.VarChar, 1024);
            SqlParameter paramSjsz   = new SqlParameter(param_Time, SqlDbType.VarChar, 1024);
            SqlParameter paramYxjl   = new SqlParameter(param_Valid, SqlDbType.Int);
            SqlParameter paramMemo   = new SqlParameter(param_Memo, SqlDbType.VarChar, 64);
            SqlParameter paramQCCode = new SqlParameter(param_QCCode, SqlDbType.VarChar, 64);

            paramJgdm.Value   = result.Id;
            paramJgfl.Value   = (int)result.ResultType + ConstRes.cstResultTypeNo;
            paramJgms.Value   = result.Name;
            paramJgsz.Value   = result.JudgeSetting;
            paramSjsz.Value   = result.TimeSetting;
            paramYxjl.Value   = 1;
            paramMemo.Value   = string.Empty;
            paramQCCode.Value = result.QCCode;

            return(new SqlParameter[] {
                paramJgdm, paramJgfl, paramJgms, paramJgsz, paramSjsz, paramYxjl, paramMemo, paramQCCode
            });
        }
Esempio n. 7
0
        /// <summary>
        /// 数据行 -> 时限
        /// </summary>
        /// <param name="row">数据</param>
        /// <param name="allconditions">所有规则条件</param>
        /// <param name="allresults">所有规则结果</param>
        /// <param name="loadRelated">是否加载相关规则</param>
        /// <returns></returns>
        public QCRule DataRow2QCRule(DataRow row, IList <QCCondition> allconditions, IList <QCResult> allresults, bool loadRelated)
        {
            QCRule rule = DataRow2QCRuleBase(row);

            string conditionId = row[col_ConditionCode].ToString();
            string resultId    = row[col_ResultCode].ToString();
            string groupId     = string.Empty;

            if (row[col_fldm] != DBNull.Value)
            {
                groupId = row[col_fldm].ToString();
            }
            QCCondition qcc  = QCCondition.SelectQCCondition(conditionId);
            QCResult    qcr  = QCResult.SelectQCResult(resultId);
            QCRuleGroup qcrg = QCRuleGroup.SelectQCRuleGroup(groupId);

            rule.Condition = qcc;
            rule.Result    = qcr;
            rule.Group     = qcrg;

            string relaterules = row[col_RelatedRule].ToString();

            if (!string.IsNullOrEmpty(relaterules))
            {
                if (loadRelated)
                {
                    GetRelateRules(rule, relaterules, allconditions, allresults);
                }
                else
                {
                    rule.PreRelateRuleIds = relaterules;
                }
            }

            return(rule);
        }
Esempio n. 8
0
 /// <summary>
 /// 保存时限规则条件
 /// </summary>
 /// <param name="result"></param>
 public static void SaveQCResult(QCResult result)
 {
     Dal.SaveResult(result);
 }
Esempio n. 9
0
        /// <summary>
        /// 更新规则纪录(根据发生的结果更新已经存在的规则纪录)
        /// </summary>
        /// <param name="patid"></param>
        /// <param name="eprid"></param>
        /// <param name="opdoctor"></param>
        /// <param name="resultType"></param>
        /// <param name="resultObject"></param>
        /// <param name="resultTime"></param>
        public void UpdateRuleRecord(int patid, int eprid, string opdoctor, QCResultType resultType, object resultObject, DateTime resultTime)
        {
            DoctorManagerPatient dmp = _patientdal.SelectDoctorManagerPatient(patid);

            if (dmp == null)
            {
                return;
            }

            QCResult qcr = QCResult.SelectQCResult(resultType, resultObject);

            if (qcr == null)
            {
                return;
            }

            IList <QCRule> rules = QCRule.GetRulesByResult(qcr);

            if (rules == null || rules.Count == 0)
            {
                return;
            }

            DataTable dtrulerecords = SelectPatientRuleRecords(patid, false);
            Collection <QCRuleRecord> rulerecords = GetRuleRecordsCollection(dtrulerecords);
            Collection <decimal>      dealedXhs   = new Collection <decimal>();

            for (int i = 0; i < rulerecords.Count; i++)
            {
                QCRuleRecord qcrr = rulerecords[i];
                if (qcrr.ResultState == CompleteType.Completed)
                {
                    continue;
                }
                if (((List <QCRule>) rules).Find(
                        delegate(QCRule rule)
                {
                    return(rule.Id == qcrr.Rule.Id);
                }
                        ) == null
                    )
                {
                    continue;
                }
                if (dealedXhs.IndexOf(qcrr.Xh) != -1)
                {
                    continue;
                }
                qcrr.ResultTime  = resultTime;
                qcrr.ResultState = CompleteType.Completed;
                TimeSpan timelimit = qcrr.ResultTime - qcrr.ConditionTime;
                if (timelimit <= qcrr.Rule.Timelimit)
                {
                    qcrr.RuleState = RuleRecordState.DoIntime;
                }
                else
                {
                    qcrr.RuleState = RuleRecordState.DoOuttime;
                }

                _rulerecorddal.UpdatePatientRuleRecord(dmp, qcrr);

                Collection <QCRuleRecord> dealeds = DealRelateRuleRecords(rulerecords, patid, eprid, qcrr, dmp, resultTime, opdoctor);
                foreach (QCRuleRecord dealrecord in dealeds)
                {
                    dealedXhs.Add(dealrecord.Xh);
                }
            }
        }
Esempio n. 10
0
 /// <summary>
 /// 通过监控代码获取监控结果
 /// </summary>
 /// <param name="qcCode"></param>
 public QCResult SelectQCReslut(string qcCode)
 {
     return(QCResult.SelectQCResultByCode(qcCode));
 }