Ejemplo n.º 1
0
        ///<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;
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }