void FillResult2Editor(QCResult result) { if (result == null) { return; } textBoxResultName.Text = result.Name; comboBoxResultType.SelectedItem = e2cResultType.FindChineseEnum(result.ResultType as Enum); textBoxResultParams.Text = result.JudgeSetting; }
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; } }
/// <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); } }
/// <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); }
/// <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); }
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 }); }
/// <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); }
/// <summary> /// 保存时限规则条件 /// </summary> /// <param name="result"></param> public static void SaveQCResult(QCResult result) { Dal.SaveResult(result); }
/// <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); } } }
/// <summary> /// 通过监控代码获取监控结果 /// </summary> /// <param name="qcCode"></param> public QCResult SelectQCReslut(string qcCode) { return(QCResult.SelectQCResultByCode(qcCode)); }