Пример #1
0
        /// <summary>
        /// 时限规则条件信息
        /// xlb 2013-01-06
        /// </summary>
        /// <param name="_qcCondition"></param>
        private void ShowCondition(QCCondition _qcCondition)
        {
            try
            {
                if (_qcCondition == null)
                {
                    throw new Exception("没有数据");
                }
                textEditConditionCode.Text   = _qcCondition.Code;
                textEditConditonDes.Text     = _qcCondition.Description;
                textEditConditionTable.Text  = _qcCondition.TableName;
                textEditConditionColumn.Text = _qcCondition.ColumnName;
                textEditColumnValue.Text     = _qcCondition.ColumnValue;
                textEditTimeColumn.Text      = _qcCondition.TimeColumnName;
                int      time  = _qcCondition.TimeRange;
                TimeSpan times = new TimeSpan(0, 0, 0, time);
                textEditTimeRange.Text = DS_Common.TimeSpanToLocal(times);
                textEditPatColumn.Text = _qcCondition.PatNoColumnName;
                textEditMemo.Text      = _qcCondition.Memo;
                if (_qcCondition.DBLink == "EMRDB")
                {
                    comboBoxEditDBLink.SelectedIndex = 0;
                }
                else
                {
                    comboBoxEditDBLink.SelectedIndex = 1;
                }

                string timeRange = Convert.ToString((int)_qcCondition.TimeRange / 60 / 60 / 24);
                if (timeRange != "" && timeRange != "" && timeRange != "0")
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2} and {3}> sysdate-{4}",
                                                     _qcCondition.TableName,
                                                     _qcCondition.ColumnName,
                                                     _qcCondition.ColumnValue,
                                                     _qcCondition.TimeColumnName,
                                                     timeRange);
                }
                else
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2}",
                                                     _qcCondition.TableName,
                                                     _qcCondition.ColumnName,
                                                     _qcCondition.ColumnValue);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
 /// <summary>
 /// 将窗口当前操作数据显示到View   edit by wangj  2013 1 12
 /// </summary>
 private void FreshDataByDataOper()
 {
     try
     {
         if (this.m_DataOper.Rows.Count == 0)
         {
             return;
         }
         DataRow row = m_DataOper.Rows[0];
         //lueOperCode1.CodeValue = row["Operation_Code"].ToString();
         if (valueStr == "0")
         {
             lueOperCode.DiaCode  = row["Operation_Code"].ToString();
             lueOperCode.Text     = row["Operation_Name"].ToString();
             lueOperCode.DiaValue = row["Operation_Name"].ToString();
         }
         else
         {
             lueOper.Text = row["Operation_Name"].ToString();
             //lueOper.CodeValue = row["Operation_Name"].ToString();
         }
         if (row["Operation_Date"].ToString() != "")
         {
             deOperDate.DateTime = DateTime.Parse(DateTime.Parse(row["Operation_Date"].ToString()).ToShortDateString());
             teOperDate.Time     = DateTime.Parse(DateTime.Parse(row["Operation_Date"].ToString()).ToShortTimeString());
         }
         lueOperlevel.CodeValue        = row["operation_level"].ToString();
         lueExecute1.CodeValue         = row["Execute_User1"].ToString();
         lueExecute2.CodeValue         = row["Execute_User2"].ToString();
         lueExecute3.CodeValue         = row["Execute_User3"].ToString();
         lueAnaesthesiaType.CodeValue  = row["Anaesthesia_Type_Id"].ToString();
         lueCloseLevel.CodeValue       = row["Close_Level"].ToString();
         lueAnaesthesiaUser1.CodeValue = row["Anaesthesia_User"].ToString();
         //lueAnaesthesiaUser.DiaCode = row["Anaesthesia_User"].ToString();
         //lueAnaesthesiaUser.DiaValue = row["Anaesthesia_User_Name"].ToString();
         //lueAnaesthesiaUser.Text = lueAnaesthesiaUser.DiaValue;
         int seconds;
         if (!int.TryParse(row["OperInTimes"].ToString(), out seconds))
         {
             seconds = 0;
         }
         TimeSpan times = new TimeSpan(0, 0, 0, seconds);
         txtOperInTime.Text = DS_Common.TimeSpanToLocal(times);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #3
0
        /// <summary>
        /// 病历时限条件代码选择改变时引发的事件
        /// xlb 2013-01-15
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lookUpEditConditionName_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                string         code = lookUpEditConditionName.EditValue.ToString();
                SqlParameter[] sps  = { new SqlParameter("@code", code) };
                DataTable      dt   = DS_SqlHelper.ExecuteDataTable("select * from qccondition where code=@code", sps, CommandType.Text);
                if (dt == null || dt.Rows.Count <= 0)
                {
                    return;
                }
                textEditTableName.Text   = dt.Rows[0]["TABLENAME"] == null ? "" : dt.Rows[0]["TABLENAME"].ToString();
                textEditColumn.Text      = dt.Rows[0]["COLUMNNAME"] == null ? "" : dt.Rows[0]["COLUMNNAME"].ToString();
                textEditColumnValue.Text = dt.Rows[0]["COLUMNVALUE"] == null ? "" : dt.Rows[0]["COLUMNVALUE"].ToString();
                textEditPatColumn.Text   = dt.Rows[0]["PATNOCOLUMNNAME"] == null ? "" : dt.Rows[0]["PATNOCOLUMNNAME"].ToString();
                textEditTimeColumn.Text  = dt.Rows[0]["TIMECOLUMNNAME"] == null ? "" : dt.Rows[0]["TIMECOLUMNNAME"].ToString();
                if (dt.Rows[0]["TIMERANGE"].ToString() != null && dt.Rows[0]["TIMERANGE"].ToString() != "")
                {
                    int      times    = Convert.ToInt32(dt.Rows[0]["TIMERANGE"].ToString());
                    TimeSpan timeSpan = new TimeSpan(0, 0, 0, times);
                    textEditTimeRange.Text = DS_Common.TimeSpanToLocal(timeSpan);
                }

                textEditMemo.Text = dt.Rows[0]["MEMO"].ToString();
                if (dt.Rows[0]["TIMECOLUMNNAME"].ToString() != "" && dt.Rows[0]["TIMERANGE"].ToString() != "" && dt.Rows[0]["TIMERANGE"].ToString() != "0")
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2} and {3}>sysdate-{4}",
                                                     textEditTableName.Text,
                                                     textEditColumn.Text,
                                                     textEditColumnValue.Text,
                                                     textEditTimeColumn.Text,
                                                     Convert.ToInt32(dt.Rows[0]["TIMERANGE"]) / 60 / 60 / 24);
                }
                else
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2}",
                                                     textEditTableName.Text,
                                                     textEditColumn.Text,
                                                     textEditColumnValue.Text);
                }
            }
            catch (Exception ex)
            {
                MyMessageBox.Show(1, ex);
            }
        }
Пример #4
0
        /// <summary>
        /// 获取最终的数据集
        /// Edit by xlb 新的病历时限信息条件时间来判断 即REALCONDITIONTIME
        /// 2013-02-26
        /// </summary>
        /// <param name="infos"></param>
        /// <param name="dtTimeLimit"></param>
        public DataTable GetGridViewData(DataTable infos, DataTable dtTimeLimit)
        {
            //if (null == dtTimeLimit)
            //{
            //    return infos;
            //}
            try
            {
                for (int i = 0; i < dtTimeLimit.Rows.Count; i++)
                {
                    DataRow         row           = dtTimeLimit.Rows[i];
                    RuleRecordState recordstate   = (RuleRecordState)int.Parse(row["FoulState"].ToString());
                    DateTime        conditionTime = DateTime.Parse(row["ConditionTime"].ToString());
                    if (recordstate == RuleRecordState.None || recordstate == RuleRecordState.DoIntime || conditionTime > DateTime.Now)
                    {
                        continue;
                    }
                    DataRow newRow = infos.NewRow();
                    newRow["UserName"] = row["UserName"].ToString().Trim(); //+ "(" + row["UserID"].ToString().Trim() + ")";
                    newRow["PatName"]  = row["PatName"].ToString().Trim();  // + "(" + row["Patid"].ToString().Trim() + ")";
                    newRow["DeptName"] = row["DeptName"];
                    newRow["Age"]      = null == row["Age"] ? "" : (row["Age"].ToString() + "岁");
                    newRow["SexID"]    = row["SexID"];
                    newRow["Sex"]      = row["Sex"];
                    newRow["Outbed"]   = row["Outbed"];
                    newRow["InTime"]   = row["InTime"];

                    //条件成功时间 即触发时间加延迟时间
                    DateTime dateConditionTime = DateTime.Parse(row["REALCONDITIONTIME"].ToString());
                    //现在时间
                    DateTime dateNow = DateTime.Now;
                    //时间限制 以秒为单位
                    double timeLimit = double.Parse(row["TIMELIMIT"].ToString());

                    TimeSpan tsLimit = (TimeSpan)(dateNow - dateConditionTime);
                    //违规状态
                    string foulState = row["FOULSTATE"].ToString().Trim();
                    //时间限制转换为指定格式
                    TimeSpan lTimeLimit = new TimeSpan(0, 0, 0, Convert.ToInt32(timeLimit));
                    switch (foulState)
                    {
                    case "1":    //1表示违规
                        newRow["TimeLimit"]   = "超过" + DS_Common.TimeSpanToLocal(tsLimit - lTimeLimit);
                        newRow["TipWarnInfo"] = row["FOULMESSAGE"];
                        infos.Rows.Add(newRow);
                        break;

                    case "0":
                        if (tsLimit > lTimeLimit)
                        {
                            newRow["TipWarnInfo"] = row["FOULMESSAGE"].ToString();
                            newRow["TimeLimit"]   = "超出" + DS_Common.TimeSpanToLocal(tsLimit - lTimeLimit);
                            infos.Rows.Add(newRow);
                        }
                        else
                        {
                            newRow["TipWarnInfo"] = row["REMINDER"].ToString();
                            newRow["TimeLimit"]   = "还剩" + DS_Common.TimeSpanToLocal(lTimeLimit - tsLimit);
                            infos.Rows.Add(newRow);
                        }
                        break;

                    default:
                        break;
                    }
                    #region 已注销 by xlb 2013-02-26
                    //预算与今日的差距
                    //DateTime dtResultTime = DateTime.Parse(row["ResultTime"].ToString());
                    //DateTime dtConditionTime = DateTime.Parse(row["ConditionTime"].ToString());
                    //TimeSpan tsTimeLimit = (TimeSpan)(dtResultTime - dtConditionTime);
                    //double dblTimeLimit = double.Parse(row["TimeLimit"].ToString());
                    //TimeSpan tsDefTimeLimit = new TimeSpan(0, 0, 0, Convert.ToInt32(dblTimeLimit));
                    //switch (recordstate)
                    //{
                    //case RuleRecordState.UndoIntime:
                    //tsTimeLimit = DateTime.Now - dtConditionTime;
                    //if (tsTimeLimit > tsDefTimeLimit)
                    //{
                    // recordstate = RuleRecordState.UndoOuttime;
                    //}
                    //break;
                    //case RuleRecordState.DoIntime:
                    // break;
                    //case RuleRecordState.UndoOuttime:
                    //break;
                    //case RuleRecordState.DoOuttime:
                    //break;
                    //default:
                    //break;
                    //}
                    //newRow["TimeLimit"] = tsTimeLimit > tsDefTimeLimit ? (ConstRes.cstOverTime + TimeSpan2Chn(tsTimeLimit - tsDefTimeLimit)) : (ConstRes.cstOnTime + TimeSpan2Chn(tsDefTimeLimit - tsTimeLimit));

                    //if (recordstate == RuleRecordState.UndoIntime)
                    //{
                    //    newRow["TipWarnInfo"] = row["Reminder"];
                    //}
                    //else if (recordstate == RuleRecordState.DoOuttime || recordstate == RuleRecordState.UndoOuttime)
                    //{
                    //    newRow["TipWarnInfo"] = row["FoulMessage"];
                    //}
                    //infos.Rows.Add(newRow);
                    #endregion
                }
                return(infos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //return infos;
        }
Пример #5
0
        /// <summary>
        /// 抓取病历质控记录库信息
        /// xlb 2013-01-10
        /// </summary>
        /// <returns></returns>
        private void GetQcRecord(DataTable dtTable)
        {
            try
            {
                if (dtTable.Rows.Count == 0)
                {
                    return;
                }

                DataTable dtShow = new DataTable();
                AddDataElement(dtShow, "message", "提醒信息", typeof(string));
                AddDataElement(dtShow, "time", "提醒时间", typeof(string));
                AddDataElement(dtShow, "name", "病人姓名", typeof(string));
                AddDataElement(dtShow, "noofinpat", "病案号", typeof(string));

                //Add By wwj 2013-01-15 用于解决排序问题
                AddDataElement(dtShow, "realconditiontime", "条件发生时间", typeof(string));

                for (int i = 0; i < dtTable.Rows.Count; i++)
                {
                    DataRow  row        = dtTable.Rows[i];
                    string   foulState  = row["FOULSTATE"].ToString();
                    DateTime realCtime  = DateTime.Parse(row["REALCONDITIONTIME"].ToString());
                    DateTime dateNow    = DateTime.Now;
                    double   timeLimit  = double.Parse(row["TIMELIMIT"].ToString());
                    TimeSpan tsLimit    = (TimeSpan)(dateNow - realCtime);
                    TimeSpan lTimeLimit = new TimeSpan(0, 0, 0, Convert.ToInt32(timeLimit));

                    DataRow drshow = dtShow.NewRow();
                    drshow["name"]      = row["NAME"].ToString();
                    drshow["noofinpat"] = row["NOOFINPAT"].ToString();

                    //Add By wwj 2013-01-15 用于解决排序问题
                    drshow["realconditiontime"] = Convert.ToDateTime(row["realconditiontime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");

                    if (foulState.Trim() == "1")
                    {
                        drshow["message"] = row["FOULMESSAGE"].ToString();
                        drshow["time"]    = "超出" + DS_Common.TimeSpanToLocal(tsLimit - lTimeLimit);
                        dtShow.Rows.Add(drshow);
                    }
                    else if (foulState.Trim() == "0")
                    {
                        if (tsLimit > lTimeLimit)
                        {
                            drshow["message"] = row["FOULMESSAGE"].ToString();
                            drshow["time"]    = "超出" + DS_Common.TimeSpanToLocal(tsLimit - lTimeLimit);
                            dtShow.Rows.Add(drshow);
                        }
                        else
                        {
                            drshow["message"] = row["REMINDER"].ToString();
                            drshow["time"]    = "还剩" + DS_Common.TimeSpanToLocal(lTimeLimit - tsLimit);
                            dtShow.Rows.Add(drshow);
                        }
                    }
                }
                //Modify By wwj 2013-01-15 用于解决排序问题
                dtShow.DefaultView.Sort                        = "message asc, realconditiontime asc";
                gridControlTimeLimitInfo.DataSource            = dtShow;
                gridViewTimeLimit.Columns["name"].GroupIndex   = 1;
                gridViewTimeLimit.Columns["noofinpat"].Visible = false;
                //gridViewTimeLimit.Columns["realconditiontime"].Visible = false;
                //遍历让列标题居中
                for (int i = 0; i < gridViewTimeLimit.Columns.Count; i++)
                {
                    gridViewTimeLimit.Columns[i].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                }
                gridViewTimeLimit.OptionsCustomization.AllowSort = false;//禁掉自带排序功能
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #6
0
        /// <summary>
        /// 显示时限详细信息方法
        /// by xlb 2013-01-05
        /// </summary>
        /// <param name="qcRule"></param>
        private void ShowRule(QCRule qcRule)
        {
            try
            {
                if (qcRule == null)
                {
                    return;
                }
                lookUpEditConditionName.EditValue = qcRule.Condition.Code;
                textEditTableName.Text            = qcRule.Condition.TableName;
                textEditColumn.Text      = qcRule.Condition.ColumnName;
                textEditColumnValue.Text = qcRule.Condition.ColumnValue;
                textEditTimeColumn.Text  = qcRule.Condition.TimeColumnName;
                int      times    = qcRule.Condition.TimeRange;
                TimeSpan timeSpan = new TimeSpan(0, 0, 0, times);
                textEditTimeRange.Text = DS_Common.TimeSpanToLocal(timeSpan);
                textEditPatColumn.Text = qcRule.Condition.PatNoColumnName;
                textEditMemo.Text      = qcRule.Memo;
                if (_currentRule.Condition.TableName != "" && _currentRule.Condition.ColumnName != "" && _currentRule.Condition.ColumnValue != "" && _currentRule.Condition.TimeRange > 0)
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2} and {3}>sysdate-{4}",
                                                     _currentRule.Condition.TableName,
                                                     _currentRule.Condition.ColumnName,
                                                     _currentRule.Condition.ColumnValue,
                                                     _currentRule.Condition.TimeColumnName,
                                                     _currentRule.Condition.TimeRange / 60 / 60 / 24);
                }
                else
                {
                    textEditSql.Text = string.Format("select * from {0} where {1} {2}",
                                                     _currentRule.Condition.TableName,
                                                     _currentRule.Condition.ColumnName,
                                                     _currentRule.Condition.ColumnValue);
                }

                textBoxRuleId.Text   = qcRule.RuleCode;
                textBoxRuleName.Text = qcRule.Description;
                int      timesLimit = qcRule.TimeLimit;
                TimeSpan timeSpans  = new TimeSpan(0, 0, 0, timesLimit);
                textBoxRuleTime.Text    = DS_Common.TimeSpanToLocal(timeSpans);
                textBoxTipInfo.Text     = qcRule.Reminder;
                textBoxWarningInfo.Text = qcRule.FoulMessage;
                textEditLooptimes.Text  = qcRule.CycleTimes.ToString();
                TimeSpan timeSpanCycle = new TimeSpan(0, 0, 0, qcRule.CycleInterval);
                textEditLoopinterval.Text = DS_Common.TimeSpanToLocal(timeSpanCycle);
                spinEditScore.Text        = qcRule.Sorce.ToString();

                lookUpEditQcCode.EditValue      = qcRule.QCCode;
                textEditRuleMemo.Text           = qcRule.Memo;
                lookUpEditRuleGroup.EditValue   = qcRule.RuleCategory.Code;
                lookUpEditDoctorLevel.EditValue = (Decimal)qcRule.DoctorLevel;
                spinEditDelayTime.Text          = qcRule.DelayTime.ToString();
                if (qcRule.Valid == "1")
                {
                    checkEditValid.Checked = true;
                }
                else
                {
                    checkEditValid.Checked = false;
                }
                if (qcRule.MARK == OperationType.OnlyOne)
                {
                    comboBoxOpMode.SelectedIndex = 0;
                }
                else if (qcRule.MARK == OperationType.EveryOne)
                {
                    comboBoxOpMode.SelectedIndex = 1;
                }
                else if (qcRule.MARK == OperationType.Circle)
                {
                    comboBoxOpMode.SelectedIndex = 2;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }