예제 #1
0
        public short UpdateMrStatus(MrIndex mrIndex)
        {
            string szDoctorID = string.Empty;

            if (base.MedQCAccess == null)
            {
                return(SystemData.ReturnValue.PARAM_ERROR);
            }

            DbParameter[] pmi = new DbParameter[5];
            pmi[0] = new DbParameter("patientID", mrIndex.PATIENT_ID);
            pmi[1] = new DbParameter("visitNO", mrIndex.VISIT_NO);
            pmi[2] = new DbParameter("visitID", mrIndex.VISIT_ID);
            pmi[3] = new DbParameter("mrStatus", mrIndex.MR_STATUS);
            pmi[4] = new DbParameter("rcount", 0, ParameterDirection.Output);
            int nResult = 0;
            int rcount  = 0;

            try
            {
                nResult = base.MedQCAccess.ExecuteNonQuery("UPDATE_MR_INDEX", CommandType.StoredProcedure, ref pmi);
                rcount  = int.Parse(pmi[4].Value.ToString());
            }
            catch (Exception ex)
            {
                LogManager.Instance.WriteLog("", ex);
                return(SystemData.ReturnValue.EXCEPTION);
            }
            finally { base.MedQCAccess.CloseConnnection(false); }
            return(rcount <= 0 ? SystemData.ReturnValue.OTHER_ERROR : SystemData.ReturnValue.OK);
        }
예제 #2
0
        private void btnArchiveTime_Click(object sender, EventArgs e)
        {
            if (this.dataGridView1.SelectedRows.Count <= 0)
            {
                return;
            }
            PatVisitInfo patVisitInfo = this.dataGridView1.SelectedRows[0].Tag as PatVisitInfo;
            QcMrIndex    qcMrIndex    = this.dataGridView1.SelectedRows[0].Cells[this.col_ARCHIVE_TIME.Index].Tag as QcMrIndex;

            if (patVisitInfo == null)
            {
                MessageBoxEx.ShowMessage("取消催送失败");
                return;
            }
            short shRet = SystemData.ReturnValue.OK;

            if (qcMrIndex == null)
            {
                qcMrIndex = new QcMrIndex();
                qcMrIndex.ARCHIVE_DOCTOR    = SystemParam.Instance.UserInfo.USER_NAME;
                qcMrIndex.ARCHIVE_DOCTOR_ID = SystemParam.Instance.UserInfo.USER_ID;
                qcMrIndex.ARCHIVE_TIME      = SysTimeHelper.Instance.Now;
                qcMrIndex.PATIENT_ID        = patVisitInfo.PATIENT_ID;
                qcMrIndex.VISIT_ID          = patVisitInfo.VISIT_ID;
                qcMrIndex.VISIT_NO          = patVisitInfo.VISIT_NO;
                shRet = QcMrIndexAccess.Instance.Insert(qcMrIndex);
            }
            else
            {
                qcMrIndex.ARCHIVE_TIME = SysTimeHelper.Instance.Now;
                shRet = QcMrIndexAccess.Instance.Update(qcMrIndex);
            }
            if (shRet != SystemData.ReturnValue.OK)
            {
                MessageBoxEx.ShowMessage("取消催送失败");
                return;
            }
            //更新mrIndex表,将病案设为归档状态
            MrIndex mrIndex = new MrIndex();

            mrIndex.PATIENT_ID = qcMrIndex.PATIENT_ID;
            mrIndex.VISIT_ID   = qcMrIndex.VISIT_ID;
            mrIndex.VISIT_NO   = qcMrIndex.VISIT_NO;
            mrIndex.MR_STATUS  = SystemData.MrStatus.Archive;
            shRet = MrIndexAccess.Instance.UpdateMrStatus(mrIndex);
            if (shRet != SystemData.ReturnValue.OK)
            {
                MessageBoxEx.ShowMessage("更新病案状态失败");
                return;
            }
            this.dataGridView1.SelectedRows[0].Cells[this.col_ARCHIVE_TIME.Index].Value = qcMrIndex.ARCHIVE_TIME.ToString("yyyy-MM-dd HH:mm");
            MessageBoxEx.ShowMessage("取消催送成功");
        }
예제 #3
0
        private void btnArchive_Click(object sender, EventArgs e)
        {
            if (MessageBoxEx.ShowConfirm("确认归档选中的病案吗?") != DialogResult.OK)
            {
                return;
            }
            StringBuilder errorMessage = new StringBuilder();

            foreach (DataGridViewRow row in this.dataTableView1.Rows)
            {
                if (row.Cells[this.col_CheckBox.Index].Value == null ||
                    row.Cells[this.col_CheckBox.Index].Value.ToString().ToLower() == "false")
                {
                    continue;
                }
                MrArchive mrArchive = row.Tag as MrArchive;
                if (mrArchive == null)
                {
                    continue;
                }
                //修改病案状态
                MrIndex mrIndex = new MrIndex();
                mrIndex.MR_STATUS  = SystemData.MrStatus.Archive;
                mrIndex.PATIENT_ID = mrArchive.PATIENT_ID;
                mrIndex.VISIT_ID   = mrArchive.VISIT_ID;
                mrIndex.VISIT_NO   = mrArchive.VISIT_NO;
                short shRet = MrIndexAccess.Instance.UpdateMrStatus(mrIndex);
                if (shRet != SystemData.ReturnValue.OK)
                {
                    errorMessage.AppendFormat("{0}\r\n", mrArchive.PATIENT_NAME);
                    continue;
                }
                QcMrIndex qcMrIndex = null;
                shRet = QcMrIndexAccess.Instance.GetQcMrIndex(mrArchive.PATIENT_ID, mrArchive.VISIT_ID, ref qcMrIndex);
                if (qcMrIndex == null)
                {
                    qcMrIndex = new QcMrIndex(mrArchive);
                }
                qcMrIndex.ARCHIVE_DOCTOR    = SystemParam.Instance.UserInfo.USER_NAME;
                qcMrIndex.ARCHIVE_DOCTOR_ID = SystemParam.Instance.UserInfo.USER_ID;
                qcMrIndex.ARCHIVE_TIME      = SysTimeHelper.Instance.Now;
                if (shRet == SystemData.ReturnValue.RES_NO_FOUND)
                {
                    shRet = QcMrIndexAccess.Instance.Insert(qcMrIndex);
                }
                else if (shRet == SystemData.ReturnValue.OK)
                {
                    shRet = QcMrIndexAccess.Instance.Update(qcMrIndex);
                }
                mrArchive.MR_STATUS         = mrIndex.MR_STATUS;
                mrArchive.ARCHIVE_DOCTOR    = qcMrIndex.ARCHIVE_DOCTOR;
                mrArchive.ARCHIVE_DOCTOR_ID = qcMrIndex.ARCHIVE_DOCTOR_ID;
                mrArchive.ARCHIVE_TIME      = qcMrIndex.ARCHIVE_TIME;
                row.Cells[this.col_MR_STATUS.Index].Value    = SystemData.MrStatus.GetMedMrStatusDesc(mrArchive.MR_STATUS);
                row.Cells[this.col_ARCHIVE_TIME.Index].Value = mrArchive.ARCHIVE_TIME.ToString("yyyy-MM-dd HH:mm");
            }
            if (errorMessage.ToString() != string.Empty)
            {
                MessageBoxEx.ShowError("以下病案归档失败:\n" + errorMessage.ToString());
                return;
            }
            MessageBoxEx.ShowMessage("归档成功");
        }
예제 #4
0
        private void dataTableView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }
            DataGridViewRow row      = this.dataTableView1.Rows[e.RowIndex];
            MrArchive       mrAchive = this.dataTableView1.Rows[e.RowIndex].Tag as MrArchive;

            if (e.ColumnIndex == this.colReject.Index)
            {
                if (MessageBoxEx.ShowConfirm("确认驳回吗?") != DialogResult.OK)
                {
                    return;
                }
                //修改病案状态
                MrIndex mrIndex = new MrIndex();
                mrIndex.MR_STATUS  = SystemData.MrStatus.Online;
                mrIndex.PATIENT_ID = mrAchive.PATIENT_ID;
                mrIndex.VISIT_ID   = mrAchive.VISIT_ID;
                mrIndex.VISIT_NO   = mrAchive.VISIT_NO;
                short shRet = MrIndexAccess.Instance.UpdateMrStatus(mrIndex);
                if (shRet != SystemData.ReturnValue.OK)
                {
                    MessageBoxEx.ShowMessage("驳回失败");
                    return;
                }
                QcMrIndex qcMrIndex = new QcMrIndex(mrAchive);
                qcMrIndex.RETURN_COUNT = mrAchive.RETURN_COUNT + 1;
                shRet = QcMrIndexAccess.Instance.Update(qcMrIndex);
                MessageBoxEx.ShowMessage("驳回成功");
                mrAchive.RETURN_COUNT = qcMrIndex.RETURN_COUNT;
                mrAchive.MR_STATUS    = mrIndex.MR_STATUS;
                if (mrAchive.RETURN_COUNT != 0)
                {
                    string szFlag = string.Empty;
                    for (int i = 0; i < mrAchive.RETURN_COUNT; i++)
                    {
                        szFlag += "🏁 ";
                    }
                    row.Cells[this.col_RETURN_COUNT.Index].Value           = szFlag;
                    row.Cells[this.col_RETURN_COUNT.Index].Style.ForeColor = Color.Red;
                }
                this.dataTableView1.Rows[e.RowIndex].Cells[this.col_ARCHIVE_TIME.Index].Value = null;
                this.dataTableView1.Rows[e.RowIndex].Cells[this.col_MR_STATUS.Index].Value    = SystemData.MrStatus.GetMedMrStatusDesc(mrAchive.MR_STATUS);
            }
            else if (e.ColumnIndex == this.colArchive.Index)
            {
                if (MessageBoxEx.ShowConfirm("确认归档吗?") != DialogResult.OK)
                {
                    return;
                }
                //修改病案状态
                MrIndex mrIndex = new MrIndex();
                mrIndex.MR_STATUS  = SystemData.MrStatus.Archive;
                mrIndex.PATIENT_ID = mrAchive.PATIENT_ID;
                mrIndex.VISIT_ID   = mrAchive.VISIT_ID;
                mrIndex.VISIT_NO   = mrAchive.VISIT_NO;
                short shRet = MrIndexAccess.Instance.UpdateMrStatus(mrIndex);
                if (shRet != SystemData.ReturnValue.OK)
                {
                    MessageBoxEx.ShowMessage("归档失败");
                    return;
                }
                QcMrIndex qcMrIndex = null;
                shRet = QcMrIndexAccess.Instance.GetQcMrIndex(mrAchive.PATIENT_ID, mrAchive.VISIT_ID, ref qcMrIndex);
                if (qcMrIndex == null)
                {
                    qcMrIndex = new QcMrIndex(mrAchive);
                }
                qcMrIndex.ARCHIVE_DOCTOR    = SystemParam.Instance.UserInfo.USER_NAME;
                qcMrIndex.ARCHIVE_DOCTOR_ID = SystemParam.Instance.UserInfo.USER_ID;
                qcMrIndex.ARCHIVE_TIME      = SysTimeHelper.Instance.Now;
                if (shRet == SystemData.ReturnValue.RES_NO_FOUND)
                {
                    shRet = QcMrIndexAccess.Instance.Insert(qcMrIndex);
                }
                else if (shRet == SystemData.ReturnValue.OK)
                {
                    shRet = QcMrIndexAccess.Instance.Update(qcMrIndex);
                }
                MessageBoxEx.ShowMessage("归档成功");
                mrAchive.MR_STATUS         = mrIndex.MR_STATUS;
                mrAchive.ARCHIVE_DOCTOR    = qcMrIndex.ARCHIVE_DOCTOR;
                mrAchive.ARCHIVE_DOCTOR_ID = qcMrIndex.ARCHIVE_DOCTOR_ID;
                mrAchive.ARCHIVE_TIME      = qcMrIndex.ARCHIVE_TIME;
                this.dataTableView1.Rows[e.RowIndex].Cells[this.col_ARCHIVE_TIME.Index].Value = mrAchive.ARCHIVE_TIME.ToString("yyyy-MM-dd HH:mm");
                this.dataTableView1.Rows[e.RowIndex].Cells[this.col_MR_STATUS.Index].Value    = SystemData.MrStatus.GetMedMrStatusDesc(mrAchive.MR_STATUS);
            }
            else if (e.ColumnIndex == this.col_CheckBox.Index)
            {
                if (row.Cells[this.col_CheckBox.Index].Value != null && row.Cells[this.col_CheckBox.Index].Value.ToString() == "True")
                {
                    row.Cells[this.col_CheckBox.Index].Value = false;
                }
                else
                {
                    row.Cells[this.col_CheckBox.Index].Value = true;
                }
            }
        }
예제 #5
0
        public short GetMrIndex(string szPatientID, string szVisitID, ref MrIndex mrIndex)
        {
            IDataReader dataReader = null;
            string      szField    = string.Format("{0},{1},{2},{3},{4},{5}"
                                                   , SystemData.MrIndexView.MR_CLASS
                                                   , SystemData.MrIndexView.MR_STATUS
                                                   , SystemData.MrIndexView.PATIENT_ID
                                                   , SystemData.MrIndexView.SUBMIT_DOCTOR_ID
                                                   , SystemData.MrIndexView.VISIT_ID
                                                   , SystemData.MrIndexView.VISIT_NO);
            string szCondition = string.Format("1=1 AND {0}='{1}' AND {2}='{3}'"
                                               , SystemData.MrIndexView.PATIENT_ID, szPatientID
                                               , SystemData.MrIndexView.VISIT_ID, szVisitID
                                               );
            string szTable = SystemData.DataView.MR_INDEX_V;
            string szSQL   = string.Format(SystemData.SQL.SELECT_WHERE, szField, szTable, szCondition);

            try
            {
                dataReader = base.MedQCAccess.ExecuteReader(szSQL, CommandType.Text);
                if (dataReader == null || dataReader.IsClosed || !dataReader.Read())
                {
                    return(SystemData.ReturnValue.RES_NO_FOUND);
                }
                if (mrIndex == null)
                {
                    mrIndex = new MrIndex();
                }
                if (!dataReader.IsDBNull(0))
                {
                    mrIndex.MR_CLASS = dataReader.GetString(0);
                }
                if (!dataReader.IsDBNull(1))
                {
                    mrIndex.MR_STATUS = dataReader.GetString(1);
                }
                if (!dataReader.IsDBNull(2))
                {
                    mrIndex.PATIENT_ID = dataReader.GetString(2);
                }
                if (!dataReader.IsDBNull(3))
                {
                    mrIndex.SUBMIT_DOCTOR_ID = dataReader.GetString(3);
                }
                if (!dataReader.IsDBNull(4))
                {
                    mrIndex.VISIT_ID = dataReader.GetString(4);
                }
                if (!dataReader.IsDBNull(5))
                {
                    mrIndex.VISIT_NO = dataReader.GetString(5);
                }

                return(SystemData.ReturnValue.OK);
            }
            catch (Exception ex)
            {
                LogManager.Instance.WriteLog("", new string[] { "SQL" }
                                             , new object[] { szSQL }, "查询失败!", ex);
                return(SystemData.ReturnValue.EXCEPTION);
            }
            finally { base.MedQCAccess.CloseConnnection(false); }
        }