private void btnSave_Click(object sender, EventArgs e) { if (this.dataGridView1.Rows.Count <= 0) { MessageBoxEx.ShowMessage("记录为空"); return; } GlobalMethods.UI.SetCursor(this, Cursors.Default); PatVisitInfo patVisitLog = new PatVisitInfo(); patVisitLog.PATIENT_ID = this.txtPatientID.Text; patVisitLog.VISIT_ID = this.txtVisitID.Text; short shRet = QcTimeRecordAccess.Instance.GetPatVisitLog(this.txtPatientID.Text, this.txtVisitID.Text, ref patVisitLog); DateTime now = DateTime.Now; List <QcTimeRecord> lstExitQCTimeRecord = new List <QcTimeRecord>(); QcTimeRecordAccess.Instance.GetQcTimeRecords(this.txtPatientID.Text, this.txtVisitID.Text, ref lstExitQCTimeRecord); List <QcTimeRecord> lstQcTimeRecord = new List <QcTimeRecord>(); foreach (DataGridViewRow item in this.dataGridView1.Rows) { TimeCheckResult resultInfo = item.Tag as TimeCheckResult; if (resultInfo == null) { continue; } QcTimeRecord qcTimeRecord = new QcTimeRecord(); qcTimeRecord.BeginDate = resultInfo.StartTime; qcTimeRecord.CheckDate = now; qcTimeRecord.CheckName = "系统自动"; qcTimeRecord.CreateID = resultInfo.CreatorID; qcTimeRecord.CreateName = resultInfo.CreatorName; qcTimeRecord.DeptInCharge = patVisitLog.DEPT_CODE; qcTimeRecord.DeptStayed = patVisitLog.DEPT_NAME; qcTimeRecord.DocID = resultInfo.DocID; qcTimeRecord.DocTitle = resultInfo.DocTitle; qcTimeRecord.DoctorInCharge = patVisitLog.INCHARGE_DOCTOR; qcTimeRecord.DocTypeID = resultInfo.DocTypeID; qcTimeRecord.DocTypeName = resultInfo.DocTypeName; qcTimeRecord.EndDate = resultInfo.EndTime; qcTimeRecord.EventID = resultInfo.EventID; qcTimeRecord.EventName = resultInfo.EventName; qcTimeRecord.EventTime = resultInfo.EventTime; qcTimeRecord.PatientID = patVisitLog.PATIENT_ID; qcTimeRecord.PatientName = patVisitLog.PATIENT_NAME; qcTimeRecord.Point = resultInfo.QCScore; qcTimeRecord.DischargeTime = patVisitLog.DISCHARGE_TIME; qcTimeRecord.QcExplain = resultInfo.ResultDesc; qcTimeRecord.IsVeto = resultInfo.IsVeto; if (resultInfo.WrittenState == WrittenState.Early) { qcTimeRecord.QcResult = SystemData.WrittenState.Early; } if (resultInfo.WrittenState == WrittenState.Normal) { qcTimeRecord.QcResult = SystemData.WrittenState.Normal; } if (resultInfo.WrittenState == WrittenState.Timeout) { qcTimeRecord.QcResult = SystemData.WrittenState.Timeout; } if (resultInfo.WrittenState == WrittenState.Unwrite) { //根据海总需求,将未书写的文书分成两种状态:一种是未书写,另一种是正常未书写。第一种代表已经超时了,需要进行扣分。 if (resultInfo.EndTime < now) { //病历未书写超过截止时间,状态为未书写超时 qcTimeRecord.QcResult = SystemData.WrittenState.Unwrite; } else { qcTimeRecord.QcResult = SystemData.WrittenState.UnwriteNormal; } } // qcTimeRecord.QcResult = SystemData.WrittenState.Unwrite; qcTimeRecord.RecNo = "0"; //未做处理 qcTimeRecord.RecordTime = resultInfo.RecordTime; qcTimeRecord.DocTime = resultInfo.DocTime; qcTimeRecord.VisitID = resultInfo.VisitID; if (!resultInfo.IsRepeat) { qcTimeRecord.QcExplain = string.Format("病人{0}{1},{2}内书写{3}" , resultInfo.EventTime.ToString("yyyy-M-d HH:mm") , resultInfo.EventName, resultInfo.WrittenPeriod, resultInfo.DocTypeName); } else { qcTimeRecord.QcExplain = string.Format("病人{0}{1},每{2}书写一次{3}" , resultInfo.EventTime.ToString("yyyy-M-d HH:mm") , resultInfo.EventName, resultInfo.WrittenPeriod, resultInfo.DocTypeName); } //判断是否已短信通知,海总需求:时效记录已存在的会写入个人统计表,进行短信通知,所以主键相同的已存数据将标记为短信通知,通过该字段避免写入统计到个人的表从而解决重复短信发送的问题。 if (lstExitQCTimeRecord != null && lstExitQCTimeRecord.Count > 0) { foreach (QcTimeRecord exitTimeRecord in lstExitQCTimeRecord) { //QCTimeRecord主键为PatientId,VisitID,DocTypeID,BeginDate,EndDate,QcResult,EventTime if (exitTimeRecord.PatientID == qcTimeRecord.PatientID && exitTimeRecord.VisitID == qcTimeRecord.VisitID && exitTimeRecord.DocTypeID == qcTimeRecord.DocTypeID && exitTimeRecord.BeginDate == qcTimeRecord.BeginDate && exitTimeRecord.EndDate == qcTimeRecord.EndDate && exitTimeRecord.QcResult == qcTimeRecord.QcResult && exitTimeRecord.EventTime == qcTimeRecord.EventTime) { //已存在的记录为当天的,则短信通知仍旧为未通知,主要是测试中会在当天运行两次以上 //实际情况是每日只会运行一次 if (qcTimeRecord.CheckDate.ToShortDateString() != exitTimeRecord.CheckDate.ToShortDateString()) { qcTimeRecord.MessageNotify = true; } } } } lstQcTimeRecord.Add(qcTimeRecord); } shRet = QcTimeRecordAccess.Instance.SavePatientQcTimeRecord(patVisitLog.PATIENT_ID, patVisitLog.VISIT_ID, lstQcTimeRecord); if (shRet != SystemData.ReturnValue.OK) { LogManager.Instance.WriteLog(string.Format("病人{0} 时效质控记录生成失败", patVisitLog.PATIENT_NAME)); } else { MessageBoxEx.ShowMessage("保存成功"); LogManager.Instance.WriteLog(string.Format("病人{0} 时效质控记录生成成功", patVisitLog.PATIENT_NAME)); } GlobalMethods.UI.SetCursor(this, Cursors.Default); this.ShowStatusMessage(null); }
/// <summary> /// 时效质控超时记录表查询 /// </summary> /// <returns>SystemData.ReturnValue</returns> public short GetQcTimeRecords(DateTime dtBeginTime, DateTime dtEndTime, string szQcResult , string szDeptCode, string szTimeType, ref List <QcTimeRecord> lstQcTimeRecords) { if (base.DataAccess == null) { return(SystemData.ReturnValue.PARAM_ERROR); } string szField = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24}" , SystemData.QcTimeRecordTable.BEGIN_DATE , SystemData.QcTimeRecordTable.CHECK_DATE , SystemData.QcTimeRecordTable.CHECKER_NAME , SystemData.QcTimeRecordTable.CREATE_ID , SystemData.QcTimeRecordTable.CREATE_NAME , SystemData.QcTimeRecordTable.DEPT_IN_CHARGE , SystemData.QcTimeRecordTable.DEPT_STAYED , SystemData.QcTimeRecordTable.DOC_ID , SystemData.QcTimeRecordTable.DOC_TITLE , SystemData.QcTimeRecordTable.DOCTOR_IN_CHARGE , SystemData.QcTimeRecordTable.DOCTYPE_ID , SystemData.QcTimeRecordTable.DOCTYPE_NAME , SystemData.QcTimeRecordTable.END_DATE , SystemData.QcTimeRecordTable.EVENT_ID , SystemData.QcTimeRecordTable.PATIENT_ID , SystemData.QcTimeRecordTable.PATIENT_NAME , SystemData.QcTimeRecordTable.POINT , SystemData.QcTimeRecordTable.QC_EXPLAIN , SystemData.QcTimeRecordTable.QC_RESULT , SystemData.QcTimeRecordTable.REC_NO , SystemData.QcTimeRecordTable.RECORD_TIME , SystemData.QcTimeRecordTable.VISIT_ID , SystemData.QcTimeRecordTable.EVENT_NAME , SystemData.QcTimeRecordTable.EVENT_TIME , SystemData.QcTimeRecordTable.DOC_TIME); string szCondition = String.Format("1=1"); if (!string.IsNullOrEmpty(szTimeType)) { szCondition = string.Format("{0} AND {1} >= {2} AND {1} <={3}" , szCondition , szTimeType , base.DataAccess.GetSqlTimeFormat(dtBeginTime) , base.DataAccess.GetSqlTimeFormat(dtEndTime) ); } else { szCondition = string.Format("{0} AND {1} >= {2} AND {1} <={3}" , szCondition , SystemData.QcTimeRecordTable.CHECK_DATE , base.DataAccess.GetSqlTimeFormat(dtBeginTime) , base.DataAccess.GetSqlTimeFormat(dtEndTime) ); } if (!GlobalMethods.Misc.IsEmptyString(szQcResult)) { szCondition = string.Format("{0} AND {1} in({2})" , szCondition , SystemData.QcTimeRecordTable.QC_RESULT , szQcResult ); } if (!GlobalMethods.Misc.IsEmptyString(szDeptCode)) { szCondition = string.Format("{0} AND {1} = '{2}' " , szCondition , SystemData.QcTimeRecordTable.DEPT_IN_CHARGE , szDeptCode ); } string szOrderBy = string.Format("{0},{1},{2}" , SystemData.QcTimeRecordTable.DEPT_IN_CHARGE, SystemData.QcTimeRecordTable.PATIENT_ID , SystemData.QcTimeRecordTable.VISIT_ID); string szSQL = string.Format(SystemData.SQL.SELECT_WHERE_ORDER_ASC, szField , SystemData.DataTable.QC_TIME_RECORD, szCondition, szOrderBy); IDataReader dataReader = null; try { dataReader = base.DataAccess.ExecuteReader(szSQL, CommandType.Text); if (dataReader == null || dataReader.IsClosed || !dataReader.Read()) { return(SystemData.ReturnValue.RES_NO_FOUND); } if (lstQcTimeRecords == null) { lstQcTimeRecords = new List <QcTimeRecord>(); } do { QcTimeRecord record = new QcTimeRecord(); if (!dataReader.IsDBNull(0)) { record.BeginDate = dataReader.GetDateTime(0); } if (!dataReader.IsDBNull(1)) { record.CheckDate = dataReader.GetDateTime(1); } if (!dataReader.IsDBNull(2)) { record.CheckName = dataReader.GetString(2); } if (!dataReader.IsDBNull(3)) { record.CreateID = dataReader.GetString(3); } if (!dataReader.IsDBNull(4)) { record.CreateName = dataReader.GetString(4); } if (!dataReader.IsDBNull(5)) { record.DeptInCharge = dataReader.GetString(5); } if (!dataReader.IsDBNull(6)) { record.DeptStayed = dataReader.GetString(6); } if (!dataReader.IsDBNull(7)) { record.DocID = dataReader.GetString(7); } if (!dataReader.IsDBNull(8)) { record.DocTitle = dataReader.GetString(8); } if (!dataReader.IsDBNull(9)) { record.DoctorInCharge = dataReader.GetString(9); } if (!dataReader.IsDBNull(10)) { record.DocTypeID = dataReader.GetString(10); } if (!dataReader.IsDBNull(11)) { record.DocTypeName = dataReader.GetString(11); } if (!dataReader.IsDBNull(12)) { record.EndDate = dataReader.GetDateTime(12); } if (!dataReader.IsDBNull(13)) { record.EventID = dataReader.GetString(13); } if (!dataReader.IsDBNull(14)) { record.PatientID = dataReader.GetString(14); } if (!dataReader.IsDBNull(15)) { record.PatientName = dataReader.GetString(15); } if (!dataReader.IsDBNull(16)) { record.Point = float.Parse(dataReader.GetValue(16).ToString()); } if (!dataReader.IsDBNull(17)) { record.QcExplain = dataReader.GetString(17); } if (!dataReader.IsDBNull(18)) { record.QcResult = dataReader.GetValue(18).ToString(); } if (!dataReader.IsDBNull(19)) { record.RecNo = int.Parse(dataReader.GetValue(19).ToString()); } if (!dataReader.IsDBNull(20)) { record.RecordTime = dataReader.GetDateTime(20); } if (!dataReader.IsDBNull(21)) { record.VisitID = dataReader.GetString(21); } if (!dataReader.IsDBNull(22)) { record.EventName = dataReader.GetString(22); } if (!dataReader.IsDBNull(23)) { record.EventTime = dataReader.GetDateTime(23); } if (!dataReader.IsDBNull(24)) { record.DocTime = dataReader.GetDateTime(24); } lstQcTimeRecords.Add(record); } while (dataReader.Read()); return(SystemData.ReturnValue.OK); } catch (Exception ex) { LogManager.Instance.WriteLog("DbAccess.GetQcTimeRecords", new string[] { "szGroupName", "szConfigName", "SQL" } , new object[] { szSQL }, "没有查询到记录!", ex); return(SystemData.ReturnValue.EXCEPTION); } finally { base.DataAccess.CloseConnnection(false); } }
/// <summary> /// 时效质控记录表查询 /// </summary> /// <returns>SystemData.ReturnValue</returns> public bool GetQcTimeRecords(ref List <QcTimeRecord> lstQcTimeRecords) { if (base.DataAccess == null) { return(false); } string szField = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24}" , SystemData.QcTimeRecordTable.BEGIN_DATE , SystemData.QcTimeRecordTable.CHECK_DATE , SystemData.QcTimeRecordTable.CHECKER_NAME , SystemData.QcTimeRecordTable.CREATE_ID , SystemData.QcTimeRecordTable.CREATE_NAME , SystemData.QcTimeRecordTable.DEPT_IN_CHARGE , SystemData.QcTimeRecordTable.DEPT_STAYED , SystemData.QcTimeRecordTable.DOC_ID , SystemData.QcTimeRecordTable.DOC_TITLE , SystemData.QcTimeRecordTable.DOCTOR_IN_CHARGE , SystemData.QcTimeRecordTable.DOCTYPE_ID , SystemData.QcTimeRecordTable.DOCTYPE_NAME , SystemData.QcTimeRecordTable.END_DATE , SystemData.QcTimeRecordTable.EVENT_ID , SystemData.QcTimeRecordTable.PATIENT_ID , SystemData.QcTimeRecordTable.PATIENT_NAME , SystemData.QcTimeRecordTable.POINT , SystemData.QcTimeRecordTable.QC_EXPLAIN , SystemData.QcTimeRecordTable.QC_RESULT , SystemData.QcTimeRecordTable.REC_NO , SystemData.QcTimeRecordTable.RECORD_TIME , SystemData.QcTimeRecordTable.VISIT_ID , SystemData.QcTimeRecordTable.EVENT_NAME , SystemData.QcTimeRecordTable.EVENT_TIME , SystemData.QcTimeRecordTable.DOC_TIME); string szCondition = String.Format("1=1"); string szSQL = null; szSQL = string.Format(SystemData.SQL.SELECT_WHERE , szField, SystemData.DataTable.QC_TIME_RECORD, szCondition); IDataReader dataReader = null; try { dataReader = base.DataAccess.ExecuteReader(szSQL, CommandType.Text); if (dataReader == null || dataReader.IsClosed || !dataReader.Read()) { return(true); } if (lstQcTimeRecords == null) { lstQcTimeRecords = new List <QcTimeRecord>(); } do { QcTimeRecord record = new QcTimeRecord(); if (!dataReader.IsDBNull(0)) { record.BeginDate = dataReader.GetDateTime(0); } if (!dataReader.IsDBNull(1)) { record.CheckDate = dataReader.GetDateTime(1); } if (!dataReader.IsDBNull(2)) { record.CheckName = dataReader.GetString(2); } if (!dataReader.IsDBNull(3)) { record.CreateID = dataReader.GetString(3); } if (!dataReader.IsDBNull(4)) { record.CreateName = dataReader.GetString(4); } if (!dataReader.IsDBNull(5)) { record.DeptInCharge = dataReader.GetString(5); } if (!dataReader.IsDBNull(6)) { record.DeptStayed = dataReader.GetString(6); } if (!dataReader.IsDBNull(7)) { record.DocID = dataReader.GetString(7); } if (!dataReader.IsDBNull(8)) { record.DocTitle = dataReader.GetString(8); } if (!dataReader.IsDBNull(9)) { record.DoctorInCharge = dataReader.GetString(9); } if (!dataReader.IsDBNull(10)) { record.DocTypeID = dataReader.GetString(10); } if (!dataReader.IsDBNull(11)) { record.DocTypeName = dataReader.GetString(11); } if (!dataReader.IsDBNull(12)) { record.EndDate = dataReader.GetDateTime(12); } if (!dataReader.IsDBNull(13)) { record.EventID = dataReader.GetString(13); } if (!dataReader.IsDBNull(14)) { record.PatientID = dataReader.GetString(14); } if (!dataReader.IsDBNull(15)) { record.PatientName = dataReader.GetString(15); } if (!dataReader.IsDBNull(16)) { record.Point = float.Parse(dataReader.GetValue(16).ToString()); } if (!dataReader.IsDBNull(17)) { record.QcExplain = dataReader.GetString(17); } if (!dataReader.IsDBNull(18)) { record.QcResult = dataReader.GetValue(18).ToString(); } if (!dataReader.IsDBNull(19)) { record.RecNo = int.Parse(dataReader.GetValue(19).ToString()); } if (!dataReader.IsDBNull(20)) { record.RecordTime = dataReader.GetDateTime(20); } if (!dataReader.IsDBNull(21)) { record.VisitID = dataReader.GetString(21); } if (!dataReader.IsDBNull(22)) { record.EventName = dataReader.GetString(22); } if (!dataReader.IsDBNull(23)) { record.EventTime = dataReader.GetDateTime(23); } if (!dataReader.IsDBNull(24)) { record.DocTime = dataReader.GetDateTime(24); } lstQcTimeRecords.Add(record); } while (dataReader.Read()); return(true); } catch (Exception ex) { return(false); } finally { base.DataAccess.CloseConnnection(false); } }
public short GenerateTimeRecord(PatVisitInfo item, DateTime now) { short shRet = SystemData.ReturnValue.OK; if (string.IsNullOrEmpty(item.INCHARGE_DOCTOR)) { string szDoctorIncharge = string.Empty; //通过病人视图无法取到责任医生,由于首页未录入造成,通过最近书写的一份文书去取 shRet = EmrDocAccess.Instance.GetDoctorInChargeByEmrDoc(item.PATIENT_ID, item.VISIT_ID, ref szDoctorIncharge); if (shRet == SystemData.ReturnValue.OK) { item.INCHARGE_DOCTOR = szDoctorIncharge; } } TimeCheckQuery timeCheckQuery = new TimeCheckQuery(); timeCheckQuery.PatientID = item.PATIENT_ID; //timeCheckQuery.VisitID = item.VISIT_ID; //timeCheckQuery.VisitID = SystemParam.Instance.PatVisitLog.VISIT_ID; //编辑器VISIT_NO=VISIT_ID timeCheckQuery.VisitID = item.VISIT_NO; timeCheckQuery.VisitNO = item.VISIT_NO; timeCheckQuery.PatientName = item.PATIENT_NAME; timeCheckQuery.DeptCode = item.DEPT_CODE; try { TimeCheckEngine.Instance.PerformTimeCheck(timeCheckQuery); } catch (Exception ex) { LogManager.Instance.WriteLog("TimeCheckEngine.Instance.PerformTimeCheck 时效接口调用失败", ex); return(SystemData.ReturnValue.EXCEPTION); } //获取已经保存在数据库QC_TIME_RECORD_T表里面的时效结果 List <QcTimeRecord> lstExitQCTimeRecord = new List <QcTimeRecord>(); QcTimeRecordAccess.Instance.GetQcTimeRecords(item.PATIENT_ID, item.VISIT_ID, ref lstExitQCTimeRecord); //保存时效质控分析结果 List <TimeCheckResult> lstCheckResults = TimeCheckEngine.Instance.TimeCheckResults; if (lstCheckResults == null) { return(SystemData.ReturnValue.RES_NO_FOUND); } List <QcTimeRecord> lstQcTimeRecord = new List <QcTimeRecord>(); for (int index = 0; index < lstCheckResults.Count; index++) { QcTimeRecord qcTimeRecord = new QcTimeRecord(); TimeCheckResult resultInfo = lstCheckResults[index]; resultInfo.VisitID = item.VISIT_ID; qcTimeRecord.BeginDate = resultInfo.StartTime; qcTimeRecord.CheckDate = now; qcTimeRecord.CheckName = "系统自动"; qcTimeRecord.CreateID = resultInfo.CreatorID; qcTimeRecord.CreateName = resultInfo.CreatorName; qcTimeRecord.DeptInCharge = item.DEPT_CODE; qcTimeRecord.DeptStayed = item.DEPT_NAME; qcTimeRecord.DocID = resultInfo.DocID; qcTimeRecord.DocTitle = resultInfo.DocTitle; qcTimeRecord.DoctorInCharge = item.INCHARGE_DOCTOR; qcTimeRecord.DocTypeID = resultInfo.DocTypeID; qcTimeRecord.DocTypeName = resultInfo.DocTypeName; qcTimeRecord.EndDate = resultInfo.EndTime; qcTimeRecord.EventID = resultInfo.EventID; qcTimeRecord.EventName = resultInfo.EventName; qcTimeRecord.EventTime = resultInfo.EventTime; qcTimeRecord.PatientID = item.PATIENT_ID; qcTimeRecord.PatientName = item.PATIENT_NAME; qcTimeRecord.Point = resultInfo.QCScore; qcTimeRecord.DischargeTime = item.DISCHARGE_TIME; qcTimeRecord.QcExplain = resultInfo.ResultDesc; qcTimeRecord.IsVeto = resultInfo.IsVeto; if (resultInfo.WrittenState == WrittenState.Early) { qcTimeRecord.QcResult = SystemData.WrittenState.Early; } if (resultInfo.WrittenState == WrittenState.Normal) { qcTimeRecord.QcResult = SystemData.WrittenState.Normal; } if (resultInfo.WrittenState == WrittenState.Timeout) { qcTimeRecord.QcResult = SystemData.WrittenState.Timeout; } if (resultInfo.WrittenState == WrittenState.Unwrite) { //根据海总需求,将未书写的文书分成两种状态:一种是未书写,另一种是正常未书写。第一种代表已经超时了,需要进行扣分。 if (resultInfo.EndTime < now) { //病历未书写超过截止时间,状态为未书写超时 qcTimeRecord.QcResult = SystemData.WrittenState.Unwrite; } else { qcTimeRecord.QcResult = SystemData.WrittenState.UnwriteNormal; } } // qcTimeRecord.QcResult = SystemData.WrittenState.Unwrite; qcTimeRecord.RecNo = "0"; //未做处理 qcTimeRecord.RecordTime = resultInfo.RecordTime; qcTimeRecord.DocTime = resultInfo.DocTime; qcTimeRecord.VisitID = resultInfo.VisitID; if (!resultInfo.IsRepeat) { qcTimeRecord.QcExplain = string.Format("病人{0}{1},{2}内书写{3}" , resultInfo.EventTime.ToString("yyyy-M-d HH:mm") , resultInfo.EventName, resultInfo.WrittenPeriod, resultInfo.DocTypeName); } else { qcTimeRecord.QcExplain = string.Format("病人{0}{1},每{2}书写一次{3}" , resultInfo.EventTime.ToString("yyyy-M-d HH:mm") , resultInfo.EventName, resultInfo.WrittenPeriod, resultInfo.DocTypeName); } //判断是否已短信通知,海总需求:时效记录已存在的会写入个人统计表,进行短信通知,所以主键相同的已存数据将标记为短信通知,通过该字段避免写入统计到个人的表从而解决重复短信发送的问题。 if (lstExitQCTimeRecord != null && lstExitQCTimeRecord.Count > 0) { foreach (QcTimeRecord exitTimeRecord in lstExitQCTimeRecord) { //QCTimeRecord主键为PatientId,VisitID,DocTypeID,BeginDate,EndDate,QcResult,EventTime if (exitTimeRecord.PatientID == qcTimeRecord.PatientID && exitTimeRecord.VisitID == qcTimeRecord.VisitID && exitTimeRecord.DocTypeID == qcTimeRecord.DocTypeID && exitTimeRecord.BeginDate == qcTimeRecord.BeginDate && exitTimeRecord.EndDate == qcTimeRecord.EndDate && exitTimeRecord.QcResult == qcTimeRecord.QcResult && exitTimeRecord.EventTime == qcTimeRecord.EventTime) { //已存在的记录为当天的,则短信通知仍旧为未通知,主要是测试中会在当天运行两次以上 //实际情况是每日只会运行一次 if (qcTimeRecord.CheckDate.ToShortDateString() != exitTimeRecord.CheckDate.ToShortDateString()) { qcTimeRecord.MessageNotify = true; } } } } lstQcTimeRecord.Add(qcTimeRecord); } shRet = QcTimeRecordAccess.Instance.SavePatientQcTimeRecord(item.PATIENT_ID, item.VISIT_ID, lstQcTimeRecord); if (shRet != SystemData.ReturnValue.OK) { LogManager.Instance.WriteLog(string.Format("病人{0} 时效质控记录生成失败", item.PATIENT_NAME)); } return(shRet); }