///<summary> /// 记录质控者阅读病历日志信息 /// </summary> /// <param name="lstDocInfo">病历文档信息列表</param> /// <param name="dtCheckTime">检查时间</param> /// <param name="node">当前节点</param> private void SaveReadLogInfo(MedDocInfo docInfo, DateTime dtCheckTime, VirtualNode node) { if (string.IsNullOrEmpty(docInfo.DOC_SETID)) { return; } EMRDBLib.MedicalQcLog qcActionLog = new EMRDBLib.MedicalQcLog(); qcActionLog.PATIENT_ID = SystemParam.Instance.PatVisitInfo.PATIENT_ID; qcActionLog.VISIT_ID = SystemParam.Instance.PatVisitInfo.VISIT_ID; qcActionLog.DEPT_STAYED = SystemParam.Instance.PatVisitInfo.DEPT_CODE; qcActionLog.DOC_SETID = docInfo.DOC_SETID; qcActionLog.CHECKED_BY = SystemParam.Instance.UserInfo.USER_NAME; qcActionLog.CHECKED_ID = SystemParam.Instance.UserInfo.USER_ID; qcActionLog.DEPT_CODE = SystemParam.Instance.UserInfo.DEPT_CODE; qcActionLog.DEPT_NAME = SystemParam.Instance.UserInfo.DEPT_NAME; qcActionLog.CHECK_TYPE = 0; qcActionLog.CHECK_DATE = dtCheckTime; qcActionLog.LOG_TYPE = 1; qcActionLog.LOG_DESC = "质控者阅读病历"; qcActionLog.AddQCQuestion = false; short shRet = MedicalQcLogAccess.Instance.Insert(qcActionLog); if (shRet != SystemData.ReturnValue.OK) { return; } node.SubItems[5].Text = "是"; node.SubItems[6].Text = dtCheckTime.ToString("yyyy-MM-dd HH:mm:ss"); node.SubItems[6].ForeColor = Color.Blue; }
private void mnuRollbackDocument_Click(object sender, EventArgs e) { //判断是否是已归档患者的病历,C 表示已归档 if (SystemParam.Instance.PatVisitInfo.MR_STATUS.ToUpper() == "C") { MessageBoxEx.Show(this, "该患者病案已归档,不能再退回,请医生到医生站回退病历", MessageBoxIcon.Warning); return; } else if (this.m_ClickDocument.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.QC_ROLLBACK) { MessageBoxEx.Show(this, "该病历处于质控人员退回状态,不用重新退回!", MessageBoxIcon.Warning); return; } RollbackDocument rbForm = new RollbackDocument(); if (rbForm.ShowDialog() == DialogResult.OK) { //获取文档信息 MedDocInfo docInfo = this.m_ClickDocument; this.m_ClickDocument.SIGN_CODE = MedDocSys.DataLayer.SystemData.SignState.QC_ROLLBACK; byte[] temp = null; if (this.Document.DOC_ID == this.m_ClickDocument.DOC_ID) { this.textEditor1.SaveDocument2(out temp); } short shRet = EmrDocAccess.Instance.UpdateDoc(this.m_ClickDocument.DOC_ID, this.m_ClickDocument, rbForm.Reason, temp); if (shRet == SystemData.ReturnValue.OK) { //向医生站发送消息 //1.向Medical_QC_LOG表插入反馈信息记录 EMRDBLib.MedicalQcLog qcActionLog = new EMRDBLib.MedicalQcLog(); if (!QuestionListForm.MakeQCActionLog(ref qcActionLog)) { GlobalMethods.UI.SetCursor(this, Cursors.Default); return; } qcActionLog.LOG_DESC = "质控人员退回病历"; qcActionLog.CHECK_TYPE = 6; qcActionLog.AddQCQuestion = false; qcActionLog.DOC_SETID = this.Document.DOC_SETID; shRet = MedicalQcLogAccess.Instance.Insert(qcActionLog); //2.向Medical_QC_MSG表插入质控人员质检记录 EMRDBLib.MedicalQcMsg qcQuestionInfo = new EMRDBLib.MedicalQcMsg(); qcQuestionInfo.QC_MODULE = "DOCTOR_MR"; qcQuestionInfo.TOPIC_ID = this.Document.DOC_SETID; qcQuestionInfo.TOPIC = this.Document.DOC_TITLE; qcQuestionInfo.PATIENT_ID = SystemParam.Instance.PatVisitInfo.PATIENT_ID; qcQuestionInfo.VISIT_ID = SystemParam.Instance.PatVisitInfo.VISIT_ID; if (!GlobalMethods.Misc.IsEmptyString(SystemParam.Instance.PatVisitInfo.DEPT_CODE)) { qcQuestionInfo.DEPT_STAYED = SystemParam.Instance.PatVisitInfo.DEPT_CODE; } else { qcQuestionInfo.DEPT_STAYED = SystemParam.Instance.PatVisitInfo.DischargeDeptCode; } string inChargeDoctor = string.Empty; //DataAccess.GetPatChargeDoctorID(SystemParam.Instance.PatVisitLog.PatientID, SystemParam.Instance.PatVisitLog.VisitID, ref inChargeDoctor); qcQuestionInfo.DOCTOR_IN_CHARGE = this.Document.CREATOR_NAME; qcQuestionInfo.PARENT_DOCTOR = SystemParam.Instance.PatVisitInfo.AttendingDoctor; qcQuestionInfo.SUPER_DOCTOR = SystemParam.Instance.PatVisitInfo.SUPER_DOCTOR; qcQuestionInfo.QC_MSG_CODE = "Q1"; //将退回原因作为质检问题描述 if (string.IsNullOrEmpty(rbForm.Reason)) { qcQuestionInfo.MESSAGE = "存在其他对病历质量造成严重影响的问题"; } else { qcQuestionInfo.MESSAGE = rbForm.Reason; } qcQuestionInfo.MSG_STATUS = 0; qcQuestionInfo.QA_EVENT_TYPE = "质控退回原因"; qcQuestionInfo.POINT_TYPE = 1; qcQuestionInfo.ISSUED_BY = SystemParam.Instance.UserInfo.USER_NAME; qcQuestionInfo.ISSUED_DATE_TIME = SysTimeHelper.Instance.Now; qcQuestionInfo.ISSUED_ID = SystemParam.Instance.UserInfo.USER_ID; qcQuestionInfo.POINT_TYPE = 0; qcQuestionInfo.POINT = 0; shRet = MedicalQcMsgAccess.Instance.Insert(qcQuestionInfo); if (shRet == SystemData.ReturnValue.OK) { MessageBoxEx.Show(this, "已成功退回病历", MessageBoxIcon.Information); } } } }