/// <summary> /// 增加规则纪录 /// </summary> /// <param name="patid">病人Id</param> /// <param name="eprid">病历Id</param> /// <param name="opdoctor">操作医生</param> /// <param name="conditionType">时限规则条件类别</param> /// <param name="conditionObject">条件对象,用来定位具体的条件</param> /// <param name="conditionTime">条件发生时间</param> public void AddRuleRecord(int patid, int eprid, string opdoctor, QCConditionType conditionType, object conditionObject, DateTime conditionTime) { DoctorManagerPatient dmp = _patientdal.SelectDoctorManagerPatient(patid); if (dmp == null) { return; } QCCondition qcc = QCCondition.SelectQCCondition(conditionType, conditionObject); if (qcc == null) { return; } IList <QCRule> rules = QCRule.GetRulesByCondition(qcc); foreach (QCRule rule in rules) { QCRuleRecord qcrr = new QCRuleRecord(patid, eprid, rule); qcrr.ConditionTime = conditionTime; qcrr.ConditionState = CompleteType.Completed; qcrr.RuleState = RuleRecordState.UndoIntime; qcrr.CreateDoctor = opdoctor; SetQcRuleRecordState(rule, qcrr); _rulerecorddal.InsertPatientRuleRecord(dmp, qcrr); } }
/// <summary> /// 由于条件取消导致规则记录取消 /// </summary> /// <param name="patid"></param> /// <param name="eprid"></param> /// <param name="opdoctor"></param> /// <param name="conditionType"></param> /// <param name="conditionObject"></param> /// <param name="conditionTime"></param> public void CancelRuleRecord(int patid, int eprid, string opdoctor, QCConditionType conditionType, object conditionObject, DateTime conditionTime) { DoctorManagerPatient dmp = _patientdal.SelectDoctorManagerPatient(patid); if (dmp == null) { return; } QCCondition qcc = QCCondition.SelectQCCondition(conditionType, conditionObject); if (qcc == null) { return; } IList <QCRule> rules = QCRule.GetRulesByCondition(qcc); if (rules == null || rules.Count == 0) { return; } DataTable dtrulerecords = SelectPatientRuleRecords(patid, false); Collection <QCRuleRecord> rulerecords = GetRuleRecordsCollection(dtrulerecords); for (int i = 0; i < rulerecords.Count; i++) { QCRuleRecord qcrr = rulerecords[i]; if (qcrr.ResultState == CompleteType.Completed) { continue; } QCRule existsrule = ((List <QCRule>) rules).Find(delegate(QCRule rule) { return(rule.Id == qcrr.Rule.Id); }); qcrr.RecordState = RecordState.Invalid; _rulerecorddal.UpdatePatientRuleRecord(dmp, qcrr); } }