/// <summary> /// 设置时限控制对象内部分类 /// </summary> /// <param name="innerKind"></param> public override void SetQcObjInnerKind(object innerKind) { if (innerKind is QCResultType) { _type = (QCResultType)innerKind; } }
/// <summary> /// 取得结果类型的对应类 /// </summary> /// <param name="result"></param> /// <returns></returns> public static string ResultType2String(QCResultType resulttype) { switch (resulttype) { case QCResultType.EmrChange: return(ConstRes.cstEmrModelType); default: break; } return(string.Empty); }
/// <summary> /// 通过指定的条件类别和对象定位条件 /// </summary> /// <param name="resultType"></param> /// <param name="resultObject"></param> /// <returns></returns> public static QCResult SelectQCResult(QCResultType resultType, object resultObject) { IList <QCResult> kindResults = new List <QCResult>(); foreach (QCResult qcr in _allResults) { if (qcr._type == resultType) { kindResults.Add(qcr.Clone()); } } string objtype = Qcsv.ResultType2String(resultType); if (string.IsNullOrEmpty(objtype)) { foreach (QCResult qcr in kindResults) { if (qcr.JudgeSetting == resultObject.ToString()) { return(qcr); } } } else { foreach (QCResult qcr in kindResults) { QCParams qcp = new QCParams(qcr.JudgeSetting); if (Qcsv.JudgeObjIsEqualProps(Type.GetType(objtype), resultObject, qcp)) { return(qcr); } } } return(null); }
/// <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="patid"></param> /// <param name="eprid"></param> /// <param name="opdoctor"></param> /// <param name="resultType"></param> /// <param name="resultObject"></param> public void UpdateRuleRecord(int patid, int eprid, string opdoctor, QCResultType resultType, object resultObject) { UpdateRuleRecord(patid, eprid, opdoctor, resultType, resultObject, DateTime.Now); }