using AIMSBLL;
using AIMSExtension;
using AIMSModel;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls;
using DrawGraph;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace AIMS.PublicUI.UI
{
public partial class frmFactEventsNew : Form
{
///
/// 手术记录
///
public DrawGraph.OperationRecord _record;
public int EventTypeId;
///
/// 选择项编号
///
public int _itemId;
///
/// 图表控件
///
public ZedGraphControl zgcAnaesRecord;
///
/// 是否是回顾
///
public bool IsReview = false;
SuperTabControl stc = new SuperTabControl();
///
/// 修改委托
///
public delegate void EventParamHandler();
///
/// 修改事件
///
public event EventParamHandler EventParam;
public bool IsDeleteConcet = false;
public frmFactEventsNew()
{
InitializeComponent();
}
private void frmFactEventsNew_Load(object sender, EventArgs e)
{
if (PublicMethod.OperatorNo == "admin" || PublicMethod.RoleName.Contains("常用事件"))
{
btnTypeManager.Visible = true;
}
for (int i = 0; i < dgvEvents.Columns.Count; i++)
{
dgvEvents.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
dgvEvents.CellValueChanged -= new DataGridViewCellEventHandler(dgvEvents_CellValueChanged);
Initial();
dgvEvents.ClearSelection();
dgvEvents.ShowCellToolTips = true;
dgvEvents.CellValueChanged += new DataGridViewCellEventHandler(dgvEvents_CellValueChanged);
dgvEvents.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
}
private void Initial()
{
BindAnaesthesiaEvents();
DataTable dt = BEvents.GetCommonlyEvents();
FullCommonlyEvents(superTabControlPanel1, dt);
if (_record.FactEventsList.Count > 0)
{
FullDGV(_record.FactEventsList);
}
}
int page = 0;
int currpage = 0;
DataTable drugdt;
Panel panelleftsel;
private void FullCommonlyEvents(Panel panelleft, DataTable dt)
{
if (panelleft.Controls != null) panelleft.Controls.Clear();
page = (dt.Rows.Count / 16) + 1;
currpage = 1;
drugdt = dt;
int y = -28;
if (page > 1)
{
Panel paneltab = new Panel();
paneltab.AutoScroll = true;
paneltab.BackColor = Color.White;
paneltab.Dock = DockStyle.Top;
paneltab.Height = 36;
panelleft.Controls.Add(paneltab);
int x = -28;
y = 8;
for (int i = 1; i <= page; i++)
{
ButtonX lb = new ButtonX();
lb.Text = i.ToString().Trim();
lb.Size = new System.Drawing.Size(30, 30);
lb.Font = new System.Drawing.Font("微软雅黑", 11f, FontStyle.Bold);
lb.Parent = paneltab;
if (i == 1)
lb.TextColor = System.Drawing.Color.Black;
x += 34;
lb.Location = new Point(x, 3);
lb.Click += Lb1_Click;
paneltab.Controls.Add(lb);
}
}
Panel panel = new Panel();
panel.AutoScroll = true;
panel.BackColor = Color.White;
panel.Dock = DockStyle.Fill;
panelleft.Controls.Add(panel);
panelleftsel = panel;
LoadDrugsMethod(y);
}
private void Lb1_Click(object sender, EventArgs e)
{
ButtonX button = (ButtonX)sender;
currpage = int.Parse(button.Text);
foreach (Control item in button.Parent.Controls)
{
if (item is ButtonX)
{
if (((ButtonX)item).Text == currpage.ToString())
((ButtonX)item).TextColor = System.Drawing.Color.Black;
else
((ButtonX)item).TextColor = System.Drawing.Color.White;
}
}
panelleftsel.Controls.Clear();
int y = 8;
LoadDrugsMethod(y);
}
private void LoadDrugsMethod(int y)
{
int row = (currpage - 1) * 18;
for (int i = 0; i < 18; i++)
{
if (row + i >= drugdt.Rows.Count) break;
ButtonX lb = new ButtonX();
lb.Text = drugdt.Rows[row + i]["Name"].ToString().Trim();
if (lb.Text.Length > 16)
{
lb.Text = lb.Text.Substring(0, 17) + "...";
}
lb.Tag = drugdt.Rows[row + i]["Id"].ToString();
//设定位置
lb.Size = new System.Drawing.Size(panelleftsel.Width - 26, 30);
lb.Font = new System.Drawing.Font("微软雅黑", 10.9f, FontStyle.Bold);
lb.Cursor = Cursors.Hand;
lb.ColorTable = eButtonColor.Flat;
lb.BackColor = Color.SkyBlue;
lb.TextAlignment = eButtonTextAlignment.Left;
lb.Parent = panelleftsel;
lb.TextColor = System.Drawing.Color.Black;
y += 32;
lb.Location = new Point(4, y);
lb.Click += new EventHandler(lb_Click);
panelleftsel.Controls.Add(lb);
}
}
void lb_Click(object sender, EventArgs e)
{
ButtonX button = sender as ButtonX;
Events selevent = BEvents.SelectSingle(int.Parse(button.Tag.ToString()), RecursiveType.None, 0);
foreach (FactEvents drd in _record.FactEventsList)
{
if (drd.Id == selevent.Id)
{
DialogResult drr = MessageBox.Show(selevent.Name + "已于" + drd.EventBeginTime + "添加过了,是否继续添加?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (drr == DialogResult.Yes)
break;
else
return;
}
}
DataGridViewRow dr = new DataGridViewRow();
dr.CreateCells(dgvEvents);
dr.Cells[0].Value = selevent.Id.Value;
dr.Cells[1].Tag = selevent.Id.Value;
dr.Cells[1].Value = selevent.Name;
dr.Cells[2].Value = DateTime.Now;
//dr.Cells[5].Value = selevent.Value;
if (selevent.Remark != null)
{
DataGridViewComboEditTipBoxCell col = (DataGridViewComboEditTipBoxCell)dr.Cells[6];
col.Items.Add("");
string remark = selevent.Remark;
if (remark.Contains('|'))
{
string[] s = remark.Split('|');
for (int i = 0; i < s.Length; i++)
{
if (s[i] != "")
col.Items.Add(s[i]);
}
dr.Cells[6].Value = s[0];//备注名称
}
else
{
if (remark != null && remark.Trim() != "" && !col.Items.Contains(remark))
{
col.Items.Add(remark);
}
dr.Cells[6].Value = remark;//备注名称
}
}
dgvEvents.Rows.Add(dr);
}
private void FullDGV(List list)
{
dgvEvents.AutoGenerateColumns = false;
dgvEvents.Rows.Clear();
foreach (FactEvents item in _record.FactEventsList)
{
int index = this.dgvEvents.Rows.Add();
this.dgvEvents.Rows[index].Tag = item.Id;
this.dgvEvents.Rows[index].Cells["TypeName"].Value = "事件";
DataGridViewComboEditTipBoxCell col = (DataGridViewComboEditTipBoxCell)dgvEvents.Rows[index].Cells[6];
col.Items.Add("");
if (item.EventRemark != null && item.EventRemark != "")
{
string remark = item.EventRemark.ToString();
string[] s = remark.Split('|');
for (int i = 0; i < s.Length; i++)
{
if (s[i] != "")
col.Items.Add(s[i]);
}
}
if (item.Remark != null && item.Remark.Trim() != "" && !col.Items.Contains(item.Remark))
{
col.Items.Add(item.Remark);
}
this.dgvEvents.Rows[index].Cells["Remark"].Value = item.Remark;
this.dgvEvents.Rows[index].Cells["EventName"].Value = item.EventName;
this.dgvEvents.Rows[index].Cells["EventName"].Tag = item.EventId;
if (item.EventId < 10)
{
this.dgvEvents.Rows[index].Cells["EventName"].ReadOnly = true;
}
if (Convert.ToDateTime(item.EventBeginTime).ToString().Length > 0)
{
this.dgvEvents.Rows[index].Cells["BeginTime"].Value = item.EventBeginTime;
}
if (item.IsContinue > 0)
{
this.dgvEvents.Rows[index].Cells["Continue"].Value = "-->";
}
if (Convert.ToDateTime(item.EventEndTime).ToString().Length > 0)
{
if (item.EventEndTime != item.EventBeginTime)
{
this.dgvEvents.Rows[index].Cells["Continue"].Value = "-->";
this.dgvEvents.Rows[index].Cells["EndTime"].Value = item.EventEndTime;
}
}
this.dgvEvents.Rows[index].Cells["EventValue"].Value = item.EventValue;
}
for (int i = 0; i < dgvEvents.Columns.Count; i++)
{
dgvEvents.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
}
private void dgvEvents_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//判断如果事件名称列内容发生变化时(输入关键字),设置显示查询结果的控件的位置及内容
if (dgvEvents.CurrentCell != null && dgvEvents.CurrentCell.Tag != null && dgvEvents.CurrentCell.ColumnIndex == 1)
{
//if ("56,60,61,154,10,11".Contains(dgvEvents.CurrentCell.Tag.ToString())) return;
if (dgvEvents.CurrentCell.Tag != null && BEvents.SelectSingle(int.Parse(dgvEvents.CurrentCell.Tag.ToString())).Name != dgvEvents.CurrentCell.Value.ToString())
{
dgvEvents.CurrentCell.Tag = null;
}
}
if (dgvEvents.CurrentCell.ColumnIndex == 1)
{
if (dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].EditedFormattedValue.ToString() == "")
{
dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm");//默认当前时间‘
TimeSpan tsp = DateTime.Now - _record.InRoomTime.Value;
if (tsp.TotalHours > 12)
{
DateTime begindate = new DateTime(_record.InRoomTime.Value.Year, _record.InRoomTime.Value.Month, _record.InRoomTime.Value.Day, DateTime.Now.Hour, DateTime.Now.Minute, 0);
if (begindate > _record.InRoomTime.Value)
{
begindate = DateTime.Now;
}
dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].Value = begindate;
}
}
}
//if (dgvEvents.CurrentCell != null && dgvEvents.CurrentCell.ColumnIndex == 2 )
//{
// DataGridViewCell s = dgvEvents.CurrentCell as DataGridViewCell;
// if (s.Tag != null && (DateTime.Parse(s.Tag.ToString()).Minute != DateTime.Parse(s.Value.ToString()).Minute))
// SendKeys.Send("{left}");
// s.Tag = s.Value.ToString();
//}
}
private void dgvEvents_CellClick(object sender, DataGridViewCellEventArgs e)
{
//点击开始时间时显示时间
if (dgvEvents.CurrentCell.ColumnIndex == 2 && dgvEvents.CurrentCell.EditedFormattedValue.ToString() == "")
{
dgvEvents.CurrentCell.Value = DateTime.Now;
SendKeys.Send("{Tab}");
}
//点击Sign列时显示持续事件标记
if (dgvEvents.CurrentCell.ColumnIndex == 3)
{
if (dgvEvents.CurrentCell.EditedFormattedValue.ToString() == "" && dgvEvents.CurrentRow.Cells["BeginTime"].EditedFormattedValue.ToString() != "")
{
dgvEvents.CurrentCell.Value = "-->";
btnSave.Focus();
//SendKeys.Send("{Tab}");
}
else
{
dgvEvents.CurrentCell.Value = "";
dgvEvents.CurrentRow.Cells["EndTime"].Value = "";
btnSave.Focus();
//SendKeys.Send("{Tab}");
}
}
//点击结束时间时判断是否持续事件,并显示时间
if (dgvEvents.CurrentCell.ColumnIndex == 4)
{
if (dgvEvents.CurrentRow.Cells[3].EditedFormattedValue.ToString() != "" && dgvEvents.CurrentCell.EditedFormattedValue.ToString() == "")
{
dgvEvents.CurrentRow.Cells["EndTime"].Value = DateTime.Now;
btnSave.Focus();
//SendKeys.Send("{Tab}");
}
}
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (dgvEvents.CurrentRow != null && dgvEvents.CurrentRow.Tag != null)
{
string objectName = dgvEvents.CurrentRow.Cells["EventName"].EditedFormattedValue.ToString();
int objectId = int.Parse(dgvEvents.CurrentRow.Cells["EventName"].Tag.ToString());
bool b = false;
if (objectId == 7)
{
b = true;
}
if (_record.StateName == "手术结束" || _record.StateName == "麻醉复苏结束")
{
if (objectId < 10)
{
b = true;
}
if (objectName == "插管" || objectName == "拔管" || objectName == "喉罩" || objectName == "拔喉罩")
{
b = false;
}
}
if (b == true)
{
MessageBox.Show("删除失败!\n\r" + "选择的事件不可删除 只可修改!");
return;
}
//string messang = string.Format("确定要删除:{0}吗?", objectName);
//DialogResult dr = MessageBox.Show(messang, "删除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
//if (dr == System.Windows.Forms.DialogResult.OK)
//{
if (dgvEvents.CurrentRow.Tag != null)
{
int id = Convert.ToInt32(dgvEvents.CurrentRow.Tag);
FactEvents er = _record.FactEventsList.Where(p => p.Id == id).ToList()[0];
if (er != null)
{
if (zgcAnaesRecord != null)
er.clearAddObj(zgcAnaesRecord);
BFactEvents.Delete(er);
DelEventTime(er);
IsDeleteConcet = true;
_record.FactEventsList.Remove(er);
dgvEvents.Rows.Remove(dgvEvents.CurrentRow);
}
}
else
{
if (dgvEvents.CurrentRow.Cells["EventName"].Value != null)
{
dgvEvents.Rows.Remove(dgvEvents.CurrentRow);
}
}
//}
}
else
{
if (dgvEvents.CurrentRow.Cells["EventName"].Value != null)
{
dgvEvents.Rows.Remove(dgvEvents.CurrentRow);
}
}
}
private void btnSave_Click(object sender, EventArgs e)
{
#region 保存时验证
foreach (DataGridViewRow dr in dgvEvents.Rows)
{
if (dr.Cells[1].Value != null)
{
if (dr.Cells["BeginTime"].EditedFormattedValue.ToString() == "")
{
MessageBox.Show("保存失败!\n\r" + "请输入:" + dr.Cells[0].EditedFormattedValue.ToString() + ":" + dr.Cells["EventName"].EditedFormattedValue.ToString() + "的开始时间!");
dgvEvents.CurrentCell = dr.Cells["BeginTime"];
dgvEvents.BeginEdit(true);
return;
}
else
{
DateTime Begin = Convert.ToDateTime(dr.Cells["BeginTime"].Value.ToString());
if (Begin > DateTime.Now.AddHours(5))
{
MessageBox.Show("保存失败!\n\r 事件开始时间不能大于当前时间5个小时 请检查!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);//药品名称
dgvEvents.CurrentCell = dr.Cells["BeginTime"];
dgvEvents.BeginEdit(true);
return;
}
}
}
if (dr.Cells["EndTime"].Value != null)
{
if (dr.Cells["EndTime"].EditedFormattedValue.ToString() != "")
{
DateTime Begin = Convert.ToDateTime(dr.Cells["EndTime"].Value.ToString());
if (Begin > DateTime.Now.AddHours(5))
{
MessageBox.Show("保存失败!\n\r 事件结束时间不能大于当前时间5个小时 请检查!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);//药品名称
dgvEvents.CurrentCell = dr.Cells["BeginTime"];
dgvEvents.BeginEdit(true);
return;
}
}
}
}
//foreach (DataGridViewRow dr in dgvEvents.Rows)
//{
// if (dr.Cells["EventName"].Value != null && _record.StateName != 2)
// {
// string messing = "";
// bool timeistrue = BOperationRecord.IfTimeisTrue(_record.ParentId == 0 ? true : false, _record, dr.Cells["EventName"].Value.ToString(), Convert.ToDateTime(dr.Cells["BeginTime"].Value.ToString()), ref messing);
// if (messing != "") MessageBox.Show("保存失败!\n\r" + messing);
// if (timeistrue == false) return;
// }
//}
#endregion
bool IsChage = false;
int second = 0;
foreach (DataGridViewRow dr in dgvEvents.Rows)
{
if (dr.Cells["EventName"].Value == null || dr.Cells["EventName"].Value.ToString().Trim() == "") continue;
//实例化FactEvents对象
FactEvents _event = new FactEvents();
_event.EventTypeId = EventTypeId;
_event.PatientId = _record.PatientId;
GetEvent(dr, _event);
if (_event.EventName == null) continue;
if (dr.Cells["BeginTime"].EditedFormattedValue.ToString() != "")
{
string begindate = Convert.ToDateTime(dr.Cells["BeginTime"].Value.ToString()).ToString("yyyy-MM-dd HH:mm:00");
_event.EventBeginTime = Convert.ToDateTime(begindate);//开始时间
if (dr.Cells["EventName"].Value.ToString() != "入室")
{
second++;
_event.EventBeginTime = _event.EventBeginTime.Value.AddSeconds(second);
if (second > 5) second = 0;
}
}
_event.EventEndTime = dr.Cells["EndTime"].EditedFormattedValue.ToString() != "" ? Convert.ToDateTime(dr.Cells["EndTime"].Value.ToString()) : _event.EventBeginTime;
if (dr.Cells["Remark"].EditedFormattedValue.ToString() != "")
{
_event.Remark = dr.Cells["Remark"].EditedFormattedValue.ToString();
}
else
{
_event.Remark = "";
}
if (dr.Cells["EventValue"].EditedFormattedValue.ToString() != "")
{
_event.EventValue = dr.Cells["EventValue"].Value.ToString();
}
_event.IsContinue = dr.Cells["Continue"].EditedFormattedValue.ToString() != "" ? 1 : 0;
if (dr.Tag == null)
{
_event.OperatorNo = PublicMethod.OperatorNo;
_event.OperatorName = PublicMethod.OperatorName;
_event.OperateDate = DateTime.Now;
//if (_event.EventName == "出室") continue;
//将事件对象保存到集合
int _eventId = BFactEvents.Insert(_event);
_event.Id = _eventId;
_record.FactEventsList.Add(_event);
//将新增的事件Id保存到Row
dr.Tag = _eventId;
//if (dr.Tag != null && _eventId > 0)
// SetEventTime(_event, ref IsChage);
}
else
{
_event.Id = Convert.ToInt32(dr.Tag);
//将修改的事件保存到集合
foreach (FactEvents FactEvents in _record.FactEventsList)
{
if (FactEvents.Id == _event.Id)
{
_event.OperatorNo = PublicMethod.OperatorNo;
_event.OperatorName = PublicMethod.OperatorName;
_event.OperateDate = DateTime.Now;
if (zgcAnaesRecord != null)
FactEvents.clearAddObj(zgcAnaesRecord);
_record.FactEventsList.Remove(FactEvents);
_record.FactEventsList.Add(_event);
//修改时间对象
if (BFactEvents.Update(_event) > 0)
{
SetEventTime(_event, ref IsChage);
}
break;
}
}
}
//增加事件的使用频次
Events events = BEvents.SelectSingle(_event.EventId, RecursiveType.None, 0);
events.UseRate += 1;
BEvents.Update(events);
}
new frmMessageBox().Show();
EventParam();
//this.Close();
}
private void SetEventTime(FactEvents _event, ref bool IsChage)
{
if (_event != null && _event.EventName == "机控呼吸")
{
if (_event.EventValue != null)
{
DateTime EventEndTime = _event.EventEndTime.Value;
if (_event.IsContinue == 1 && _event.EventEndTime.Value == _event.EventBeginTime.Value)
{
EventEndTime = OperationRecord.getOpeMaxTime(_record);
}
if (EventEndTime > DateTime.Now) EventEndTime = DateTime.Now;
DateTime insTime = GetRecordTime(_event.EventBeginTime.Value);
TimeSpan tsp = EventEndTime - insTime;
List PhysioDatas = new List();
foreach (var addPP in _record.PhysioConfigList)
{
if (addPP.Id != 12) continue;
for (int i = 0; i < (tsp.TotalMinutes / 5); i++)
{
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, insTime.AddMinutes(i * 5), Convert.ToInt32(_event.EventValue));
PhysioDatas.Add(pdTemp);
}
}
if (PhysioDatas.Count > 0)
{
PhysioDataService.AddPhysioDatas(PhysioDatas);
UpdatePhysioDataResp();
}
}
}
if (_event != null && _event.EventName == "入室" && _record.InRoomTime != _event.EventBeginTime)
{
_record.InRoomTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("InRoomTime=@InRoom where Id=@id ", new AIMSModel.ParameterList("@InRoom", _record.InRoomTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
if (_event != null && _event.EventName == "手术开始" && _record.OperationBeginTime != _event.EventBeginTime)
{
_record.OperationBeginTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("OperationBeginTime=@OperationBegin where Id=@id ", new AIMSModel.ParameterList("@OperationBegin", _record.OperationBeginTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
if (_event != null && _event.EventName == "麻醉开始" && _record.AnesthesiaBeginTime != _event.EventBeginTime)
{
_record.AnesthesiaBeginTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("AnesthesiaBeginTime=@AnesthesiaBeginTime where Id=@id ", new AIMSModel.ParameterList("@AnesthesiaBeginTime", _record.AnesthesiaBeginTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
if (_event != null && _event.EventName == "麻醉完成" && _record.AnesthesiaEndTime != _event.EventBeginTime)
{
_record.AnesthesiaEndTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("AnesthesiaEndTime=@AnesthesiaEndTime where Id=@id ", new AIMSModel.ParameterList("@AnesthesiaEndTime", _record.AnesthesiaEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
if (_event != null && _event.EventName == "插管" && _record.SpileInTime != _event.EventBeginTime)
{
_record.SpileInTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update(" SpileInTime=@SpileIn where Id=@id ", new AIMSModel.ParameterList("@SpileIn", _record.SpileInTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "喉罩" && _record.SpileInTime != _event.EventBeginTime)
{
_record.SpileInTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update(" SpileInTime=@SpileIn where Id=@id ", new AIMSModel.ParameterList("@SpileIn", _record.SpileInTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "拔管" && _record.SpileOutTime != _event.EventBeginTime)
{
_record.SpileOutTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update(" SpileOutTime=@SpileOut where Id=@id ", new AIMSModel.ParameterList("@SpileOut", _record.SpileOutTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "拔喉罩" && _record.SpileOutTime != _event.EventBeginTime)
{
_record.SpileOutTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update(" SpileOutTime=@SpileOut where Id=@id ", new AIMSModel.ParameterList("@SpileOut", _record.SpileOutTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "手术结束" && _record.OperationEndTime != _event.EventBeginTime)
{
_record.OperationEndTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("OperationEndTime=@OperationEnd where Id=@id ", new AIMSModel.ParameterList("@OperationEnd", _record.OperationEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
if (_event != null && _event.EventName == "出室" && _record.OutRoomTime != _event.EventBeginTime)
{
_record.OutRoomTime = _event.EventBeginTime; IsChage = true;
BOperationRecord.Update("OutRoomTime=@OutRoom where Id=@id ", new AIMSModel.ParameterList("@OutRoom", _record.OutRoomTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), "@id", _record.Id));
}
}
public DateTime GetRecordTime(DateTime pdTemp, int collectInterval = 5)
{
DateTime result = Convert.ToDateTime(pdTemp.ToString("yyyy-MM-dd HH:mm:00.000"));
//小于入室时间默认不画
for (int i = 0; i < (480 / 5); i++)
{//InRoomTime.Value
DateTime tempTime = _record.PageBegin.AddMinutes(i * 5);
if (tempTime >= result && result < tempTime.AddMinutes(5))
{
result = tempTime;
break;
}
}
return result;
}
private void DelEventTime(FactEvents _event)
{
if (_event != null && _event.EventName == "机控呼吸")
{
UpdatePhysioDataResp();
}
//if (_event != null && _event.EventName == "入室" ) { _record.InRoomTime = null; }
if (_event != null && _event.EventName == "手术开始")
{
_record.OperationBeginTime = null;
BOperationRecord.Update(" OperationBeginTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
}
if (_event != null && _event.EventName == "手术结束")
{
_record.OperationEndTime = null;
BOperationRecord.Update(" OperationEndTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
}
if (_event != null && _event.EventName == "麻醉开始")
{
_record.AnesthesiaBeginTime = null;
BOperationRecord.Update("AnesthesiaBeginTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
}
if (_event != null && _event.EventName == "麻醉完成")
{
_record.AnesthesiaEndTime = null;
BOperationRecord.Update(" AnesthesiaEndTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
}
if (_event != null && _event.EventName == "插管")
{
_record.SpileInTime = null;
BOperationRecord.Update(" SpileInTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "喉罩")
{
_record.SpileInTime = null;
BOperationRecord.Update(" SpileInTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "拔管")
{
_record.SpileOutTime = null;
BOperationRecord.Update(" SpileOutTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
UpdatePhysioDataResp();
}
if (_event != null && _event.EventName == "拔喉罩")
{
_record.SpileOutTime = null;
BOperationRecord.Update(" SpileOutTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
UpdatePhysioDataResp();
}
//AIMSModel.ParameterList keyValuePairs = new AIMSModel.ParameterList();
// keyValuePairs.Add("@InRoomTime", _record.InRoomTime.HasValue ? (object)_record.InRoomTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@OutRoomTime", _record.OutRoomTime.HasValue ? (object)_record.OutRoomTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@OperationBeginTime", _record.OperationBeginTime.HasValue ? (object)_record.OperationBeginTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@OperationEndTime", _record.OperationEndTime.HasValue ? (object)_record.OperationEndTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@AnesthesiaBeginTime", _record.AnesthesiaBeginTime.HasValue ? (object)_record.AnesthesiaBeginTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@AnesthesiaEndTime", _record.AnesthesiaEndTime.HasValue ? (object)_record.AnesthesiaEndTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@SpileInTime", _record.SpileInTime.HasValue ? (object)_record.SpileInTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@SpileOutTime", _record.SpileOutTime.HasValue ? (object)_record.SpileOutTime.Value : (object)DBNull.Value);
// keyValuePairs.Add("@Id", _record.Id);
// BOperationRecord.Update("update OperationRecord set InRoomTime=@InRoomTime,OutRoomTime=@OutRoomTime,OperationBeginTime=@OperationBeginTime,OperationEndTime=@OperationEndTime,AnesthesiaBeginTime=@AnesthesiaBeginTime,AnesthesiaEndTime=@AnesthesiaEndTime,SpileInTime=@SpileInTime,SpileOutTime=@SpileOutTime where Id=@Id", keyValuePairs);
}
private static void GetEvent(DataGridViewRow dr, FactEvents _event)
{
try
{
if (dr.Cells["EventName"].Tag == null)
{
string name = dr.Cells["EventName"].EditedFormattedValue.ToString();
Events events = BEvents.SelectSingle(" Name='" + name + "'", null);
if (events == null)
{
events = new Events();
events.Name = name;
events.HelpCode = PublicMethod.GetFirstLetter(name);
events.UseRate = 1;
events.IsValid = 1;
events.OperatorNo = PublicMethod.OperatorNo;
events.OperatorName = PublicMethod.OperatorName;
events.OperateDate = DateTime.Now;
events.Id = BEvents.Insert(events);
}
_event.EventId = events.Id;
_event.EventName = events.Name;
}
else
{
_event.EventId = Convert.ToInt32(dr.Cells["EventName"].Tag);
_event.EventName = BEvents.SelectSingle(_event.EventId).Name;
}
}
catch (Exception ex)
{
PublicMethod.WriteLog(ex);
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
if (dgvEvents.CurrentCell.ColumnIndex != 1) return;
string name = dgvEvents.CurrentCell.EditedFormattedValue.ToString();
Events et = BEvents.SelectSingle(" Name='" + name + "'", null);
if (et != null)
{
MessageBox.Show("保存失败!\n\r" + name + "已存在!");
return;
}
DialogResult dr = MessageBox.Show("确定要将:" + name + " 增加到事件字典中吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (dr == DialogResult.OK)
{
Events events = new Events();
events.Name = name;
events.HelpCode = PublicMethod.GetFirstLetter(name);
events.UseRate = 1;
events.IsValid = 1;
events.OperatorNo = PublicMethod.OperatorNo;
events.OperatorName = PublicMethod.OperatorName;
events.OperateDate = DateTime.Now;
events.Id = BEvents.Insert(events);
dgvEvents.CurrentCell.Tag = events.Id;
btnSave.Enabled = true;
}
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void textBoxX1_TextChanged(object sender, EventArgs e)
{
this.TabSelEvents.SelectedTabChanged -= new System.EventHandler(this.TabSelEvents_SelectedTabChanged_1);
TabSelEvents.SelectedTab = tab1; ;
TextBoxX tb1 = sender as TextBoxX;
if (tb1.Text.Trim() != "")
{
DataTable table = BEvents.SelectIdNameCode(tb1.Text);
FullCommonlyEvents(superTabControlPanel1, table);
}
else
{
DataTable dt = BEvents.GetCommonlyEvents();
FullCommonlyEvents(superTabControlPanel1, dt);
}
this.TabSelEvents.SelectedTabChanged += new System.EventHandler(this.TabSelEvents_SelectedTabChanged_1);
}
private void dgvEvents_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control.GetType().Equals(typeof(DevComponents.DotNetBar.Controls.DataGridViewDateTimeInputEditingControl)))
((DevComponents.DotNetBar.Controls.DataGridViewDateTimeInputEditingControl)e.Control).DateTimeSelectorVisibility = DevComponents.Editors.DateTimeAdv.eDateTimeSelectorVisibility.DateSelector;
}
private void frmFactEventsNew_FormClosing(object sender, FormClosingEventArgs e)
{
//List UpdateRecordList = GetEventsList();
//if (UpdateRecordList.Count > 0)
//{
// DialogResult dialogResult = MessageBox.Show("记录尚未保存,是否保存当前记录?", "系统提示", MessageBoxButtons.YesNo);
// if (dialogResult == DialogResult.Yes)
// {
// btnSave_Click(null, null);
// }
//}
//this.Hide();
//e.Cancel = true;
if (IsDeleteConcet == true)
{
EventParam();
}
}
public bool equelEvents(FactEvents oldDrug, FactEvents newDrug)
{
bool b = true;
if (oldDrug.Remark != newDrug.Remark) b = false;
//if (oldDrug.Value != newDrug.Value) b = false;
if (oldDrug.EventBeginTime != null && newDrug.EventBeginTime != null && oldDrug.EventBeginTime.Value.ToString("yyyy-MM-dd HH:mm") != newDrug.EventBeginTime.Value.ToString("yyyy-MM-dd HH:mm")) b = false;
if (oldDrug.EventEndTime != newDrug.EventEndTime && oldDrug.EventEndTime.Value.ToString("HH:mm") != newDrug.EventEndTime.Value.ToString("HH:mm")) b = false;
return b;
}
private void btnTypeManager_Click(object sender, EventArgs e)
{
frmAnaesthesiaEvents fae = new frmAnaesthesiaEvents();
fae.Type = 2;
fae.ShowDialog();
BindAnaesthesiaEvents();
TabSelEvents.SelectedTab = tab1;
}
private void TabSelEvents_SelectedTabChanged_1(object sender, SuperTabStripSelectedTabChangedEventArgs e)
{
SuperTabItem item = TabSelEvents.SelectedTab;
if (item.Tag == null || item.Tag.ToString() == "")
{
DataTable dt = BEvents.GetCommonlyEvents();
FullCommonlyEvents((SuperTabControlPanel)tab1.AttachedControl, dt);
}
else
{
DataTable dt = BEvents.GetEventsByIds(item.Tag.ToString());
FullCommonlyEvents((SuperTabControlPanel)item.AttachedControl, dt);
}
}
private void BindAnaesthesiaEvents()
{
try
{
for (int i = TabSelEvents.Tabs.Count; i > 1; i--)
{
TabSelEvents.Tabs.RemoveAt(i - 1);
}
List AnaesthesiaList = BAnaesthesiaEvents.Select(" IsAutomatic=2 and IsValid=1 ", null, RecursiveType.None, 0);
foreach (AnaesthesiaEvents item in AnaesthesiaList)
{
string Name = "";
char[] separatedCharacters = item.Name.ToCharArray();
for (int i = 0; i < separatedCharacters.Length; i++)
{
Name += separatedCharacters[i] + "\n";
}
SuperTabItem spt = stc.CreateTab(Name);
spt.Tag = item.TheEventsId;
spt.SymbolColor = Color.White;
SuperTabControlPanel superTabControlPanel = new SuperTabControlPanel();
superTabControlPanel.Dock = System.Windows.Forms.DockStyle.Fill;
superTabControlPanel.CanvasColor = Color.White;
TabSelEvents.Controls.Add(superTabControlPanel);
TabSelEvents.Tabs.Add(spt);
superTabControlPanel.TabItem = spt;
spt.AttachedControl = superTabControlPanel;
TabSelEvents.FixedTabSize = new Size(30, 100);
};
}
catch (Exception ex)
{
PublicMethod.WriteLog(ex);
}
}
private void dgvEvents_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
if (e.Exception.Message == "DataGridViewComboBoxCell 值无效。")
{
try
{
object value = dgvEvents.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (value == null || value.ToString().Trim() == "")
{
e.ThrowException = false;
}
else
{
if (!((DataGridViewComboBoxCell)dgvEvents.Rows[e.RowIndex].Cells[e.ColumnIndex]).Items.Contains(value))
{
((DataGridViewComboBoxCell)dgvEvents.Rows[e.RowIndex].Cells[e.ColumnIndex]).Items.Add(value);
e.ThrowException = false;
}
}
}
catch (Exception ex)
{
e.ThrowException = false;
PublicMethod.WriteLog(ex);
}
}
}
private void dgvEvents_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgvEvents.IsCurrentCellDirty)
{
dgvEvents.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void txtQuery_Click(object sender, EventArgs e)
{
TextBoxX box = sender as TextBoxX;
box.Text = "";
}
public void UpdatePhysioDataResp()
{
BOperationRecord.UpdatePhysioDataRespByTime(_record);
string PhysioDataConfigIds = "3,12";
DataTable dtPhysioData = BOperationRecord.getByOpeIDIsPhysioData(_record.Id.Value, PhysioDataConfigIds);
List Ids = PhysioDataConfigIds.Split(',').ToList();
if (dtPhysioData != null && dtPhysioData.Rows.Count > 0)
{
foreach (PhysioDataConfig addPP in _record.PhysioConfigList)
{
if (!Ids.Contains(addPP.Id.ToString())) continue;
if (zgcAnaesRecord != null)
addPP.clearAddObj(zgcAnaesRecord);
if (addPP.IsDefalultShow == false) continue;
for (int i = 0; i < dtPhysioData.Rows.Count; i++)
{
if (dtPhysioData.Rows[i]["Name"].ToString().Equals(addPP.Name.ToString()))
{
PhysioData pdTemp = PhysioDataConfig.newPhysioData(addPP, _record.Id.Value, DateTime.Parse(dtPhysioData.Rows[i]["RecordTime"].ToString()), dtPhysioData.Rows[i]["Value"].ToString());
addPP.AddPointItem(pdTemp, false);
}
}
}
}
}
private void dgvEvents_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
//if (dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].EditedFormattedValue.ToString() == "")
//{
// dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm");//默认当前时间‘
// TimeSpan tsp = DateTime.Now - _record.InRoomTime.Value;
// if (tsp.TotalHours > 12)
// {
// DateTime begindate = new DateTime(_record.InRoomTime.Value.Year, _record.InRoomTime.Value.Month, _record.InRoomTime.Value.Day, DateTime.Now.Hour, DateTime.Now.Minute, 0);
// if (begindate > _record.InRoomTime.Value)
// {
// begindate = DateTime.Now;
// }
// dgvEvents.Rows[e.RowIndex].Cells["BeginTime"].Value = begindate;
// }
//}
}
}
public class DataGridViewComboEditTipBoxColumn : DataGridViewComboBoxColumn
{
public DataGridViewComboEditTipBoxColumn()
{
DataGridViewComboEditTipBoxCell obj = new DataGridViewComboEditTipBoxCell();
this.CellTemplate = obj;
}
}
//要加入的类
public class DataGridViewComboEditTipBoxCell : DataGridViewComboBoxCell
{
private System.Windows.Forms.ToolTip toolTip1;
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
{
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
try
{
ComboBox comboBox = (ComboBox)base.DataGridView.EditingControl;
toolTip1 = new System.Windows.Forms.ToolTip();
if (comboBox != null)
{
comboBox.DropDownStyle = ComboBoxStyle.DropDown;
comboBox.AutoCompleteMode = AutoCompleteMode.Suggest;
comboBox.Validating += new CancelEventHandler(comboBox_Validating);
comboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
//下拉表单重绘事件
comboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(ComboBox_DrawItem);
comboBox.DropDownClosed += new System.EventHandler(ComboBox_DropDownClosed);
}
}
catch (Exception)
{
}
}
//[主程序中的代码]
private void ComboBox_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
try
{
// 绘制背景
e.DrawBackground();
//绘制列表项目
e.Graphics.DrawString((sender as ComboBox).Items[e.Index].ToString(), e.Font, System.Drawing.Brushes.Black, e.Bounds);
//将高亮的列表项目的文字传递到toolTip1(之前建立ToolTip的一个实例)
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
toolTip1.Show((sender as ComboBox).Items[e.Index].ToString(), (sender as ComboBox), e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height);
e.DrawFocusRectangle();
}
catch (Exception)
{
toolTip1.Hide((sender as ComboBox));
}
}
//关闭列表时,同时关闭toolTip1的显示
private void ComboBox_DropDownClosed(object sender, System.EventArgs e)
{
try
{
if (toolTip1 != null) toolTip1.Hide((sender as ComboBox));
}
catch (Exception)
{
}
}
void comboBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
DataGridViewComboBoxEditingControl cbo = sender as DataGridViewComboBoxEditingControl;
if (cbo == null || cbo.Text.Trim() == string.Empty) return;
DataGridView grid = cbo.EditingControlDataGridView;
//if ((grid.Name == "dgvOutput" && grid.CurrentCell.ColumnIndex == 1) || (grid.Name == "dgvEvents" && grid.CurrentCell.ColumnIndex == 6) || grid.CurrentCell.ColumnIndex == 12)
if (grid.CurrentCell.ColumnIndex != 1 && grid.CurrentCell.ColumnIndex != 4 && grid.CurrentCell.ColumnIndex != 6 && grid.CurrentCell.ColumnIndex != 12) return;
object value = cbo.Text;
// Add value to list if not there
if (cbo.Items.IndexOf(value) == -1)
{
DataGridViewComboBoxCell cboCol = (DataGridViewComboBoxCell)grid.CurrentCell;
// Must add to both the current combobox as well as the template, to avoid duplicate entries
cbo.Items.Add(value);
cboCol.Items.Add(value);
grid.CurrentCell.Value = value;
}
}
}
}