示例#1
0
 /// <summary>
 /// 设置时限控制对象内部分类
 /// </summary>
 /// <param name="innerKind"></param>
 public override void SetQcObjInnerKind(object innerKind)
 {
     if (innerKind is QCResultType)
     {
         _type = (QCResultType)innerKind;
     }
 }
示例#2
0
文件: QCSV.cs 项目: xuanximoming/key
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
文件: QCSV.cs 项目: xuanximoming/key
        /// <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);
                }
            }
        }
示例#5
0
文件: QCSV.cs 项目: xuanximoming/key
 /// <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);
 }