/// <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; } }
/// <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; } }
/// <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); } }
/// <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; }
/// <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; } }
/// <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; } }