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="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="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); } } }