using AIMS.DocManager; using AIMS.OperationFront.UI; using AIMS.OremrUserControl; using AIMS.PublicUI.UI; using AIMSBLL; using AIMSExtension; using AIMSModel; using DevComponents.Editors.DateTimeAdv; using DocumentManagement; using DrawGraph; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Windows.Forms; namespace AIMS.OperationAanesthesia { public partial class frmInstrumentRecord : Form { #region 初始化 public OperationRecord _record; public TemplateManage templateManage; public AIMSModel.OperationRoom NowRoom; private DataTable _appliance; private DataTable _appliance2; private List _applianceUseType; private List _applianceUseType2; public int PatientId = 0; public int ApplyId = 0; public int RecoverId = 1; private System.Windows.Forms.Timer timerGetTextCollectorData; public AIMSExtension.EditState State; public bool isReadOnly = false; public frmInstrumentRecord() { InitializeComponent(); #region 时间轴事件 this.picInRoom.BackgroundImage = global::AIMSControls.Properties.Resources.入手术室; this.picOpeBegin.BackgroundImage = global::AIMSControls.Properties.Resources.手术开始; this.picOpeEnd.BackgroundImage = global::AIMSControls.Properties.Resources.手术结束; this.picOutRoom.BackgroundImage = global::AIMSControls.Properties.Resources.出手术室; #endregion //AIMSExtension.PublicMethod.SetLocalDateTime(); } private void frmAnasRecordInstrument_Load(object sender, EventArgs e) { labOperatorName.Text = "(" + AIMSExtension.PublicMethod.OperatorNo + ")" + " " + AIMSExtension.PublicMethod.OperatorName; if (NowRoom != null) lblRoom.Text = NowRoom.Name; circularProgress1.Location = new Point((panel8.Width - circularProgress1.Width) / 2, (panel8.Height - circularProgress1.Height) / 2); circularProgress2.Location = new Point((panel9.Width - circularProgress2.Width) / 2, (panel9.Height - circularProgress2.Height) / 2); //this.MaximizeBox = false; this.MinimizeBox = false; if (PublicMethod.OperatorNo == "admin" || PublicMethod.RoleName.Contains("护士收费记录")) { btnChage.Visible = true; } LoadAnesRescue(); } #endregion #region 上方按钮 /// /// 手术特殊事件时间点处理事件 /// /// /// public void txtDateTime_MouseDown(object sender, MouseEventArgs e) { if (PatientId == 0) return; DateTimeInput tb = sender as DateTimeInput; if (_record != null && _record.OutRoomTime != null) { if ((tb.Name == "txtBG" || tb.Name == "txtCG") && tb.Text.Trim() == "") { return; } } if (tb.Text.Trim() == "" && tb.CustomFormat == " ") { tb.BackColor = Color.White; SetPic(sender); } else { tb.CustomFormat = "HH:mm"; tb.ButtonDropDown.Visible = true; } } private void txtDateTime_LostFocus(object sender, EventArgs e) { if (PatientId == 0) return; DateTimeInput tb = sender as DateTimeInput; if (tb.CustomFormat == "HH:mm") { if (tb.Name == "txtInRoom" || tb.Name == "txtOutRoom") { tb.CustomFormat = "MM-dd HH:mm"; } tb.ButtonDropDown.Visible = false; } if (tb.Text.Trim() != "" && tb.Value.ToString() != tb.Tag.ToString()) { try { SetPic(sender, tb.Value); tb.BackColor = Color.White; } catch (Exception) { tb.Focus(); tb.Value = DateTime.Parse(tb.Tag.ToString()); return; } } else { if (tb.Tag != null && tb.Tag.ToString() != "") tb.Value = DateTime.Parse(tb.Tag.ToString()); } } private void dateTimePicker_KeyUp(object sender, KeyEventArgs e) { if (PatientId == 0) return; DateTimeInput dtpak = (DateTimeInput)sender; if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back) { if (dtpak.CustomFormat != " " && dtpak.Tag != null) { try { SetPic((DateTimeInput)sender); } catch (Exception) { return; } } } } /// /// 特殊事件触发时设置图片 /// /// 显示时间的控件 private void SetPic(Object obj) { DrawGraph.FactEvents Inevent = null; DateTimeInput tb = obj as DateTimeInput; DateTime nowtime = DateTime.Now;// getOpeMaxTime(); DateTime curTimeTemp = new DateTime(nowtime.Year, nowtime.Month, nowtime.Day, nowtime.Hour, nowtime.Minute, 0); InsertOrUpdateEventTime(0, "txtInRoom", "入室", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(0, "txtOperationBegin", "手术开始", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(0, "txtOperationEnd", "手术结束", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(0, "txtOutRoom", "出室", tb, curTimeTemp, ref Inevent); if (Inevent != null) { _record.FactEventsList.Add(Inevent); DrawEvent(); } } /// /// 特殊事件触发时设置图片 /// /// 显示时间的控件 private void SetPic(Object obj, DateTime curTimeTemp) { DrawGraph.FactEvents Inevent = null; DateTimeInput tb = obj as DateTimeInput; curTimeTemp = new DateTime(curTimeTemp.Year, curTimeTemp.Month, curTimeTemp.Day, curTimeTemp.Hour, curTimeTemp.Minute, 0); InsertOrUpdateEventTime(1, "txtInRoom", "入室", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(1, "txtOperationBegin", "手术开始", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(1, "txtOperationEnd", "手术结束", tb, curTimeTemp, ref Inevent); curTimeTemp = curTimeTemp.AddSeconds(2); InsertOrUpdateEventTime(1, "txtOutRoom", "出室", tb, curTimeTemp, ref Inevent); if (Inevent != null) { DrawEvent(); } } /// /// 特殊事件触发时设置图片 /// /// 显示时间的控件 private void SetPic(DateTimeInput obj) { DrawGraph.FactEvents Inevent = null; DateTimeInput tb = obj as DateTimeInput; if (_record.StateName == "手术中") { DeleteEventTime("txtOperationBegin", "手术开始", tb, ref Inevent); DeleteEventTime("txtOperationEnd", "手术结束", tb, ref Inevent); DeleteEventTime("txtBG", "拔管", tb, ref Inevent); } else { MessageBox.Show("选择的事件不可删除 只可修改!"); } if (Inevent != null) { tb.ButtonDropDown.Visible = false; _record.FactEventsList.Remove(Inevent); DrawEvent(); } } /// /// 判断控件对应的事件 删除事件 /// /// 事件对应的控件名称 /// 事件名称 /// 控件 private void DeleteEventTime(string EventTxtName, string EventName, DateTimeInput tb, ref DrawGraph.FactEvents Inevent) { if (tb.Name.Equals(EventTxtName)) { List list = _record.FactEventsList.Where(c => c.EventName == EventName).ToList(); if (list.Count <= 0) return; Inevent = list[0]; if (EventName == "入室" || EventName == "出室") { //PublicMethod.ShowMessage("该事件为主要事件 不可删除 只可修改!!"); tb.Value = Inevent.EventBeginTime.Value; Inevent = null; return; } BFactEvents.DeleteById(Inevent.Id.ToString()); Inevent.clearAddObj(zgcAnaesRecord); tb.CustomFormat = " "; tb.Value = DateTime.Now; tb.Tag = null; if (Inevent != null && Inevent.EventName == "手术开始") { _record.OperationBeginTime = null; this.picOpeBegin.BackgroundImage = global::AIMSControls.Properties.Resources.手术开始; BOperationRecord.Update(" OperationBeginTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id)); } if (Inevent != null && Inevent.EventName == "手术结束") { _record.OperationEndTime = null; this.picOpeEnd.BackgroundImage = global::AIMSControls.Properties.Resources.手术结束; BOperationRecord.Update(" OperationEndTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id)); } } } /// /// 判断控件对应的事件 插入事件 /// /// 0插入 1更新 /// 事件对应的控件名称 /// 事件名称 /// 事件对应的对象时间 /// 控件 /// 事件时间 /// 事件对象 private void InsertOrUpdateEventTime(int state, string EventTxtName, string EventName, DateTimeInput tb, DateTime curTimeTemp, ref DrawGraph.FactEvents Inevent) { if (tb.Name.Equals(EventTxtName)) { string messing = ""; bool timeistrue = true; timeistrue = BOperationRecord.IfTimeisTrue(true, _record, EventName, curTimeTemp, ref messing); if (_record.StateName != null && _record.StateName != "手术中") { if (messing != "") { MessageBox.Show(messing); } } else { timeistrue = true; } if (EventName == "出室" && _record.StateName == "手术中" && state == 0) { if (GetOpeState(ref messing) == false) { if (messing != "") MessageBox.Show(messing, "系统提示"); if (messing == "请与手术信息选择手术分级!" || messing == "请与手术信息选择手术切口!") btnOperationInfo_Click(null, null); return; } } if (timeistrue == false) { if (tb.Tag != null) tb.Value = DateTime.Parse(tb.Tag.ToString()); return; } if (EventName == "出室" && curTimeTemp.ToString("yyyy-MM-dd HH:mm") == _record.lastPageBegin.ToString("yyyy-MM-dd HH:mm")) { curTimeTemp = _record.lastPageBegin; } if (state != 1) { Inevent = BFactEvents.Insert(PatientId, EventName, curTimeTemp, curTimeTemp, RecoverId); } else { updateEventTime(EventName, curTimeTemp, ref Inevent); } tb.Value = curTimeTemp; tb.Tag = curTimeTemp; if (Inevent != null && Inevent.EventName == "入室" && _record.InRoomTime != Inevent.EventBeginTime) { _record.InRoomTime = Inevent.EventBeginTime; this.picInRoom.BackgroundImage = global::AIMSControls.Properties.Resources.入手术室_select; 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 (Inevent != null && Inevent.EventName == "手术开始" && _record.OperationBeginTime != Inevent.EventBeginTime) { _record.OperationBeginTime = Inevent.EventBeginTime; this.picOpeBegin.BackgroundImage = global::AIMSControls.Properties.Resources.手术开始_select; 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 (Inevent != null && Inevent.EventName == "手术结束" && _record.OperationEndTime != Inevent.EventBeginTime) { _record.OperationEndTime = Inevent.EventBeginTime; this.picOpeEnd.BackgroundImage = global::AIMSControls.Properties.Resources.手术结束_select; 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 (Inevent != null && Inevent.EventName == "出室" && _record.OutRoomTime != Inevent.EventBeginTime) { _record.OutRoomTime = Inevent.EventBeginTime; this.picOutRoom.BackgroundImage = global::AIMSControls.Properties.Resources.出手术室_select; 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 void updateEventTime(string eventName, DateTime dt, ref DrawGraph.FactEvents elist) { List list = _record.FactEventsList.Where(c => c.EventName == eventName).ToList(); if (list.Count <= 0) return; elist = list[0]; if (elist.EventBeginTime != dt) { elist.EventBeginTime = dt; elist.EventEndTime = dt; BFactEvents.Update("EventBeginTime=@EventBeginTime,EventEndTime=@EventEndTime where id=@id ", new AIMSModel.ParameterList("@EventBeginTime", elist.EventBeginTime, "@EventEndTime", elist.EventEndTime, "@id", elist.Id)); } } #endregion #region 下方按钮 private void panel8_Scroll(object sender, ScrollEventArgs e) { templateManage.SetPYL(); } private void plRefresh_Click(object sender, EventArgs e) { if (PatientId == 0) return; //刷新到当前页 ReviewEvent(); } #endregion #region 左侧按钮 private void btnSelectPatient_Click(object sender, EventArgs e) { OperationAanesthesia.frmSelectPatientGoodsBill frmSelectPatient = new frmSelectPatientGoodsBill(); frmSelectPatient.isMainOpen = true; frmSelectPatient.tempfrmAnasRecord = this; frmSelectPatient.FormClosed += new FormClosedEventHandler(frmSelectPatient_FormClosed); frmSelectPatient.ShowDialog(); } void frmSelectPatient_FormClosed(object sender, FormClosedEventArgs e) { LoadAnesRescue(); } private System.Windows.Forms.Timer timerLoadAnesRescue; public void LoadAnesRescue() { circularProgress1.IsRunning = true; circularProgress1.Visible = true; circularProgress2.IsRunning = true; circularProgress2.Visible = true; zgcAnaesRecord.Visible = false; timerLoadAnesRescue = new System.Windows.Forms.Timer(components); timerLoadAnesRescue.Enabled = true;//调试时设置为FALSE , timerLoadAnesRescue.Interval = 300; timerLoadAnesRescue.Tick -= TimerLoadAnesRescue_Tick; timerLoadAnesRescue.Tick += TimerLoadAnesRescue_Tick; timerLoadAnesRescue.Start(); } private void TimerLoadAnesRescue_Tick(object sender, EventArgs e) { timerLoadAnesRescue.Dispose(); if (PatientId > 0 && State == AIMSExtension.EditState.ADD) { try { HelperDB.DbHelperSQL.BeginTrans(); _record = new OperationRecord(); _record.OperationApplyId = ApplyId; _record.PatientId = PatientId; _record.RecoverId = RecoverId; _record.Id = BOperationRecord.AddTitleTime(PatientId, ApplyId, RecoverId, 1, DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00")), NowRoom.Id.Value); HelperDB.DbHelperSQL.CommitTrans(); ClearTimeText(); btnSelectPatient.Enabled = false; DrawAnasReordBill.IniDrawAnasReordBill4(_record, zgcAnaesRecord, ref templateManage); StartTimer(); } catch { HelperDB.DbHelperSQL.RollbackTrans(); } } else if (PatientId > 0 && State == AIMSExtension.EditState.EDIT) { _record = new OperationRecord(); btnSelectPatient.Enabled = false; //清空记录点并重新加载 ClearTimeText(); if (templateManage != null) { templateManage.ControlClear(); } DrawAnasReordBill.IniDrawAnasReordBill4(_record, zgcAnaesRecord, ref templateManage); StartTimer(); } else if (PatientId > 0 && State == AIMSExtension.EditState.BROWSE) { _record = new OperationRecord(); btnSelectPatient.Enabled = true; btnCancelOperation.Enabled = false; btnCancelIn.Enabled = false; ClearTimeText(); if (templateManage != null) { templateManage.ControlClear(); } DrawAnasReordBill.IniDrawAnasReordBill4(_record, zgcAnaesRecord, ref templateManage); StartTimer(); } AbleEditPackObj ableEdit = templateManage.GetPackObjectOTag("InstrumentDataManage_AbleEditPackObj_40_OperationRecord_SpareTen"); Panel pan = ableEdit.CControl as Panel; if (pan != null) { this.panel8.Controls.Remove(this.panelQX); panelQX.Visible = true; panelQX.Dock = DockStyle.Fill; pan.Controls.Add(panelQX); pan.Size = new System.Drawing.Size(templateManage.ZedControl.Width, (int)(templateManage.ZedControl.Height * 0.4)); panelQX2.Visible = true; panelQX2.Size = zgcAnaesRecord.Size; panelQX2.Location = new Point(pan.Location.X, 40); } plRefresh_Click(null, null); if (_record.MedicalRecord != null && _record.MedicalRecord != "") { btnOperationInfo.Enabled = false; btnOutputLiquids.Enabled = false; btnDrug.Enabled = false; btnAddEvents.Enabled = false; button6.Enabled = false; btnBloodGasAnalysis.Enabled = false; txtInRoom.Enabled = false; txtOperationBegin.Enabled = false; txtOperationEnd.Enabled = false; txtOutRoom.Enabled = false; isReadOnly = true; } if (_record.AnesthesiaDoctor == null || _record.AnesthesiaDoctor == "") { txtInRoom.MouseDown += new MouseEventHandler(txtDateTime_MouseDown); txtOutRoom.MouseDown += new MouseEventHandler(txtDateTime_MouseDown); txtOperationBegin.MouseDown += new MouseEventHandler(txtDateTime_MouseDown); txtOperationEnd.MouseDown += new MouseEventHandler(txtDateTime_MouseDown); txtOperationBegin.KeyUp += new KeyEventHandler(dateTimePicker_KeyUp); txtOperationEnd.KeyUp += new KeyEventHandler(dateTimePicker_KeyUp); txtInRoom.LostFocus += new EventHandler(txtDateTime_LostFocus); txtOutRoom.LostFocus += new EventHandler(txtDateTime_LostFocus); txtOperationBegin.LostFocus += new EventHandler(txtDateTime_LostFocus); txtOperationEnd.LostFocus += new EventHandler(txtDateTime_LostFocus); } circularProgress1.IsRunning = false; circularProgress1.Visible = false; circularProgress2.IsRunning = false; circularProgress2.Visible = false; zgcAnaesRecord.Visible = true; } private void btnOperationInfo_Click(object sender, EventArgs e) { if (PatientId != 0) { AIMS.OperationAanesthesia.frmOperationInfoNew2 frmOperationInfo = new frmOperationInfoNew2(); frmOperationInfo._record = _record; //frmOperationInfo.FormClosed += new FormClosedEventHandler(plRefresh_Click); frmOperationInfo.ShowDialog(); } else { MessageBox.Show("请选择患者"); } } private void btnDrug_Click(object sender, EventArgs e) { if (PatientId != 0) { PublicUI.UI.frmFactDrugNew frmFactDrug = new PublicUI.UI.frmFactDrugNew(); frmFactDrug._record = _record; frmFactDrug.zgcAnaesRecord = zgcAnaesRecord; frmFactDrug.DrugTypeId = RecoverId; // 事件类型 1 麻醉单事件 2 麻醉恢复单 frmFactDrug.FormClosed += new FormClosedEventHandler(frmFactEventsNew_FormClosed); frmFactDrug.ShowDialog(); } else { MessageBox.Show("请选择患者"); } } private void btnAddEvents_Click(object sender, EventArgs e) { if (PatientId != 0) { PublicUI.UI.frmFactEventsNew frmFactEventsNew = new PublicUI.UI.frmFactEventsNew(); frmFactEventsNew._record = _record; frmFactEventsNew.zgcAnaesRecord = zgcAnaesRecord; frmFactEventsNew.EventTypeId = RecoverId; // 事件类型 1 麻醉单事件 2 麻醉恢复单 frmFactEventsNew.EventParam += ReferEventDrugs; frmFactEventsNew.ShowDialog(); } else { MessageBox.Show("请选择患者"); } } private void btnOutputLiquids_Click(object sender, EventArgs e) { if (PatientId != 0) { PublicUI.UI.frmFactOutputLiquidsNew frmFactOutputLiquids = new PublicUI.UI.frmFactOutputLiquidsNew(); frmFactOutputLiquids._record = _record; frmFactOutputLiquids.OutputLiquidTypeId = RecoverId; // 事件类型 1 麻醉单事件 2 麻醉恢复单 frmFactOutputLiquids.FormClosed += new FormClosedEventHandler(frmFactEventsNew_FormClosed); frmFactOutputLiquids.ShowDialog(); } else { MessageBox.Show("请选择患者"); } } private void button6_Click(object sender, EventArgs e) { frmAanesthesiaQuality frmAnaseDataQuality = new frmAanesthesiaQuality(); frmAnaseDataQuality._record = _record; frmAnaseDataQuality.ShowDialog(); } void frmFactEventsNew_FormClosed(object sender, FormClosedEventArgs e) { plRefresh_Click(null, null); } private void btnCancelOperation_Click(object sender, EventArgs e) { if (PatientId == 0) { MessageBox.Show("请选择患者!"); return; } if (BOperationRecord.GetDataCount(_record.Id.Value, PatientId, RecoverId) > 0) { MessageBox.Show("清除数据在进行作废手术操作!"); return; } if (MessageBox.Show("确认要停止手术吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { HelperDB.DbHelperSQL.BeginTrans(); BOperationApply.UpdateApplyState(ApplyId, 11); //BOperationRecord.DeleteOperationRecordData(PatientId, RecoverId); BOperationRecord.UpdateState(PatientId, 1, 5); HelperDB.DbHelperSQL.CommitTrans(); //ClearData(); this.Close(); } catch { HelperDB.DbHelperSQL.RollbackTrans(); } } } private void btnCancelIn_Click(object sender, EventArgs e) { if (PatientId == 0) { MessageBox.Show("请选择患者!"); return; } if (BOperationRecord.GetDataCount(_record.Id.Value, PatientId, RecoverId) > 0) { MessageBox.Show("清除数据在进行取消转入操作!"); return; } if (MessageBox.Show("确认要取消转入吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { HelperDB.DbHelperSQL.BeginTrans(); BOperationApply.UpdateApplyState(ApplyId, 5); BOperationRecord.DeleteOperationRecordData(_record.Id.Value, PatientId, RecoverId); HelperDB.DbHelperSQL.CommitTrans(); DisposeTimer(); //ClearData(); this.Close(); } catch { HelperDB.DbHelperSQL.RollbackTrans(); } } } private void btnTemplate_Click(object sender, EventArgs e) { if (superTabMain.SelectedTab.Name == "spTabQXQDD") { if (_applianceUseType == null) _applianceUseType = new List(); frmSelectApplianceUseType ReturnApply = new frmSelectApplianceUseType(); ReturnApply._SelectApplianceUseType = _applianceUseType; DialogResult ddr = ReturnApply.ShowDialog(); _appliance = ReturnApply._appliance; if (ddr == System.Windows.Forms.DialogResult.OK && _appliance != null) { FullUcControlsToPanel(panelQXList, _appliance, _record.InstrumentList, ref i1, ref j1); //if (_appliance.Rows.Count > 60) // MessageBox.Show("超出打印数量!"); } } else { if (_applianceUseType2 == null) _applianceUseType2 = new List(); frmSelectApplianceUseType ReturnApply = new frmSelectApplianceUseType(); ReturnApply._SelectApplianceUseType = _applianceUseType2; DialogResult ddr = ReturnApply.ShowDialog(); _appliance2 = ReturnApply._appliance; if (ddr == System.Windows.Forms.DialogResult.OK && _appliance2 != null) { FullUcControlsToPanel(panelQXList2, _appliance2, _record.InstrumentList2, ref i2, ref j2); //if (_appliance.Rows.Count > 60) // MessageBox.Show("超出打印数量!"); } } } private void tsbExePlan_Click(object sender, EventArgs e) { if (PatientId == 0) { MessageBox.Show("请先选择患者!"); return; } if (_record.Applydiagnose == null || _record.Applydiagnose == "") { MessageBox.Show("请选择诊断后再填写文书!", "系统提示"); ModifyApply_Click(null, null); return; } PatientRecord patient = PatientRecord.GetPatientRecord(PatientId); frmDocument frmDocument = new frmDocument(patient); frmDocument.StartPosition = FormStartPosition.CenterScreen; frmDocument.WindowState = FormWindowState.Maximized; frmDocument.ShowDialog(); } void toolStripMenuItem2_Click(object sender, EventArgs e) { } private void btnBloodGasAnalysis_Click(object sender, EventArgs e) { if (PatientId != 0) { frmBloodGasAnalysisNew frmFactBloodGasAnalysis = new frmBloodGasAnalysisNew(); frmFactBloodGasAnalysis._record = _record; frmFactBloodGasAnalysis.zgcAnaesRecord = zgcAnaesRecord; frmFactBloodGasAnalysis.FormClosed += new FormClosedEventHandler(frmFactEventsNew_FormClosed); frmFactBloodGasAnalysis.ShowDialog(); } else { MessageBox.Show("请选择患者"); } } #endregion #region 采集程序 public string szy;//舒张压 public string ssy;//收缩压 public DateTime? LastRespMonitorDataTime; private void timerGetTextCollectorData_Tick(object sender, EventArgs e) { try { if (((TimeSpan)(DateTime.Now - _record.lastPageBegin)).TotalHours > 24 || NowRoom == null) return; if (_record != null && _record.OutRoomTime != null && DateTime.Now > _record.OutRoomTime) return; ShowMonitorDataToRight(); } catch (Exception ex) { PublicMethod.WriteLog(ex); } } private BackgroundWorker backgroundWorker1; public void ShowMonitorDataToRight() { this.backgroundWorker1 = new BackgroundWorker(); this.backgroundWorker1.WorkerReportsProgress = true; this.backgroundWorker1.WorkerSupportsCancellation = true; this.backgroundWorker1.DoWork += new DoWorkEventHandler(this.backgroundWorker1_DoWork); this.backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted); this.backgroundWorker1.RunWorkerAsync(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; List lists = DeviceCacheData.Select(" IPAddress='" + NowRoom.Ip + "' and UpdateTime>='" + DateTime.Now.AddSeconds(-3000) + "'"); e.Result = lists; } private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { List lists = e.Result as List; if (lists != null && lists.Count > 0) { DeviceCacheData deviceCacheData = lists[0]; NowPhysioData nowPhysioData = JsonConvert.DeserializeObject(deviceCacheData.JsonData); if (nowPhysioData.HR != null && nowPhysioData.HR.ToString() != string.Empty && nowPhysioData.HR.ToString() != "NaN" && nowPhysioData.HR.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.HR.ToString()); lblHR.Text = value <= 0 ? "- -" : value.ToString(); } if (nowPhysioData.Resp != null && nowPhysioData.Resp.ToString() != string.Empty && nowPhysioData.Resp.ToString() != "NaN" && nowPhysioData.Resp.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.Resp.ToString()); lblRESP.Text = value <= 0 ? "- -" : value.ToString(); } if (nowPhysioData.SPO2 != null && nowPhysioData.SPO2.ToString() != string.Empty && nowPhysioData.SPO2.ToString() != "NaN" && nowPhysioData.SPO2.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.SPO2.ToString()); lblSpo2.Text = value <= 0 ? "- -" : value.ToString(); } if (nowPhysioData.PR != null && nowPhysioData.PR.ToString() != string.Empty && nowPhysioData.PR.ToString() != "NaN" && nowPhysioData.PR.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.PR.ToString()); lblPR.Text = value <= 0 ? "- -" : value.ToString(); } if (nowPhysioData.Dia != null && nowPhysioData.Dia.ToString() != string.Empty && nowPhysioData.Dia.ToString() != "NaN" && nowPhysioData.Dia.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.Dia.ToString()); szy = value <= 0 ? "" : value.ToString(); } if (nowPhysioData.Sys != null && nowPhysioData.Sys.ToString() != string.Empty && nowPhysioData.Sys.ToString() != "NaN" && nowPhysioData.Sys.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.Sys.ToString()); ssy = value <= 0 ? "" : value.ToString(); } if (nowPhysioData.Dia_H != null && nowPhysioData.Dia_H.ToString() != string.Empty && nowPhysioData.Dia_H.ToString() != "NaN" && nowPhysioData.Dia_H.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.Dia_H.ToString()); szy = value <= 0 ? "" : value.ToString(); } if (nowPhysioData.Sys_H != null && nowPhysioData.Sys_H.ToString() != string.Empty && nowPhysioData.Sys_H.ToString() != "NaN" && nowPhysioData.Sys_H.ToString() != "NULL") { double value = Double.Parse(nowPhysioData.Sys_H.ToString()); ssy = value <= 0 ? "" : value.ToString(); } string szyssy = ssy + "/" + szy; if (szyssy != "/") lblDia.Text = szyssy; } else { lblHR.Text = "--"; lblRESP.Text = "--"; lblSpo2.Text = "--"; lblPR.Text = "--"; lblDia.Text = "---/---"; lblHR.ForeColor = Color.Green; lblRESP.ForeColor = Color.DarkOrange; lblSpo2.ForeColor = Color.Cyan; lblPR.ForeColor = Color.Green; lblDia.ForeColor = Color.Red; } } private void StartTimer() { if (timerGetTextCollectorData == null) timerGetTextCollectorData = new System.Windows.Forms.Timer(components); timerGetTextCollectorData.Enabled = true;//调试时设置为FALSE , timerGetTextCollectorData.Interval = 2000; timerGetTextCollectorData.Tick -= new System.EventHandler(timerGetTextCollectorData_Tick); timerGetTextCollectorData.Tick += new System.EventHandler(timerGetTextCollectorData_Tick); timerGetTextCollectorData.Start(); } private void DisposeTimer() { if (timerGetTextCollectorData != null) { timerGetTextCollectorData.Enabled = false; timerGetTextCollectorData.Stop(); } } #endregion #region 鼠标右键 private void zgcAnaesRecord_KeyUp(object sender, KeyEventArgs e) { if (templateManage != null) { ZedGraphControl send = sender as ZedGraphControl; templateManage.zedControl_KeyUp(send, e); } } private bool zgcAnaesRecord_MouseDownEvent(ZedGraphControl sender, MouseEventArgs e) { if (templateManage != null && isReadOnly == false) { SelectWorkerValue.Hidden(); SelectDictValue.Hidden(); templateManage.zedControl_MouseDownEvent(sender, e); } return default(bool); } private bool zgcAnaesRecord_MouseUpEvent(ZedGraphControl sender, MouseEventArgs e) { if (templateManage != null && isReadOnly == false) { templateManage.zedControl_MouseUpEvent(sender, e); } return default(bool); } private bool zgcAnaesRecord_MouseMoveEvent(ZedGraphControl sender, MouseEventArgs e) { if (templateManage != null) { templateManage.zedControl_MouseMoveEvent(sender, e); } return default(bool); } private void zgcAnaesRecord_MouseDoubleClick(object sender, MouseEventArgs e) { if (templateManage != null && isReadOnly == false) { ZedGraphControl send = sender as ZedGraphControl; templateManage.zedControl_MouseDoubleClick(send, e); } } private void zgcAnaesRecord_ContextMenuBuilder(ZedGraphControl sender, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState) { //添加自定义的新菜单 ToolStripMenuItem ModifyApply = new ToolStripMenuItem(); ModifyApply.Text = "手术申请信息"; ModifyApply.Click += ModifyApply_Click; menuStrip.Items.Add(ModifyApply); } private void ModifyApply_Click(object sender, EventArgs e) { if (PatientId == 0) return; frmOperationApplyDetail frm = new frmOperationApplyDetail(); frm.State = AIMSExtension.EditState.EDIT; frm.EditApplyId = ApplyId; frm.tsbExit.Visible = true; frm.tsbCancel.Visible = false; frm.FormClosed += (s, er) => { ReviewEvent(); }; //frm.FormBorderStyle = FormBorderStyle.None; // 无边框 //frm.TopLevel = false; //frm.Dock = DockStyle.Fill; //panel8.Controls.Add(frm); frm.Show(); frm.Focus(); frm.BringToFront(); } #endregion #region 公共方法 private void ReviewEvent() { try { if (PatientId != 0) { templateManage.OpeRecord = BOperationRecord.getRecord(_record, PatientId, RecoverId); templateManage.BindOperationRecordValueAll(templateManage.OpeRecord); reDrawEvent(); templateManage.Bind(); if (_record.InstrumentList != null && _record.InstrumentList.Id != null && _record.InstrumentList.ApplianceUseType != null) { txtInstrumentNurse.Text = _record.InstrumentList.InstrumentNurse; txtTourNurse.Text = _record.InstrumentList.TourNurse; txtRemark.Text = _record.InstrumentList.Remark; LoadOperationGoodsBillRecord(); } else { FirstbtnEnter(); } if (_record.InstrumentList2 != null && _record.InstrumentList2.Id != null && _record.InstrumentList.ApplianceUseType != null) { txtInstrumentNurse2.Text = _record.InstrumentList2.InstrumentNurse; txtTourNurse2.Text = _record.InstrumentList2.TourNurse; txtRemark2.Text = _record.InstrumentList2.Remark; LoadOperationGoodsBillRecord2(); } else { FirstbtnEnter2(); } SelectOperationDoctorData = BFactPersonDuty.GetPersonIdList(_record.PatientId.Value, 1); if (SelectOperationDoctorData.Count > 0) { txtOperationDoctor.Text = ""; foreach (int RowId in SelectOperationDoctorData) { txtOperationDoctor.Text += BPerson.SelectSingle(RowId).Name + ","; } txtOperationDoctor.Text = txtOperationDoctor.Text.Substring(0, txtOperationDoctor.Text.LastIndexOf(",")); } SelectInstrumentNurseData = BFactPersonDuty.GetPersonIdList(_record.PatientId.Value, 6); if (SelectInstrumentNurseData.Count > 0) { txtInstrumentNurse.Text = ""; foreach (int RowId in SelectInstrumentNurseData) { txtInstrumentNurse.Text += BPerson.SelectSingle(RowId).Name + ","; } txtInstrumentNurse.Text = txtInstrumentNurse.Text.Substring(0, txtInstrumentNurse.Text.LastIndexOf(",")); } SelectTourNurseData = BFactPersonDuty.GetPersonIdList(_record.PatientId.Value, 7); if (SelectTourNurseData.Count > 0) { txtTourNurse.Text = ""; foreach (int RowId in SelectTourNurseData) { txtTourNurse.Text += BPerson.SelectSingle(RowId).Name + ","; } txtTourNurse.Text = txtTourNurse.Text.Substring(0, txtTourNurse.Text.LastIndexOf(",")); } } } catch (Exception ex) { PublicMethod.WriteLog(ex); } } private void DrawEvent() { reDrawEvent(); zgcAnaesRecord.Refresh(); } private void reDrawEvent() { ClearTimeText(); if (_record.InRoomTime != null) { txtInRoom.CustomFormat = "MM-dd HH:mm"; txtInRoom.ButtonDropDown.Visible = false; txtInRoom.Tag = _record.InRoomTime.Value; txtInRoom.Value = _record.InRoomTime.Value; this.picInRoom.BackgroundImage = global::AIMSControls.Properties.Resources.入手术室_select; } if (_record.OperationBeginTime != null) { txtOperationBegin.CustomFormat = "HH:mm"; txtOperationBegin.ButtonDropDown.Visible = false; txtOperationBegin.Tag = _record.OperationBeginTime.Value; txtOperationBegin.Value = _record.OperationBeginTime.Value; this.picOpeBegin.BackgroundImage = global::AIMSControls.Properties.Resources.手术开始_select; } if (_record.OperationEndTime != null) { txtOperationEnd.CustomFormat = "HH:mm"; txtOperationEnd.ButtonDropDown.Visible = false; txtOperationEnd.Tag = _record.OperationEndTime.Value; txtOperationEnd.Value = _record.OperationEndTime.Value; this.picOpeEnd.BackgroundImage = global::AIMSControls.Properties.Resources.手术结束_select; } if (_record.OutRoomTime != null) { txtOutRoom.CustomFormat = "MM-dd HH:mm"; txtOutRoom.ButtonDropDown.Visible = false; txtOutRoom.Tag = _record.OutRoomTime.Value; txtOutRoom.Value = _record.OutRoomTime.Value; this.picOutRoom.BackgroundImage = global::AIMSControls.Properties.Resources.出手术室_select; } if (_record.OutRoomTime != null && _record.StateName == "手术中") { txtOutRoom.CustomFormat = "MM-dd HH:mm"; txtOutRoom.ButtonDropDown.Visible = false; txtOutRoom.Tag = _record.OutRoomTime.Value; txtOutRoom.Value = _record.OutRoomTime.Value; EndOperationOutRoom(); } } public void ReferEventDrugs() { if (txtInRoom.Value != _record.InRoomTime) { _record.pageCount = 0; ReviewEvent(); } else { plRefresh_Click(null, null); } } private void ClearTimeText() { txtInRoom.CustomFormat = " "; txtOperationBegin.CustomFormat = " "; txtOperationEnd.CustomFormat = " "; txtOutRoom.CustomFormat = " "; txtInRoom.Tag = null; txtOperationBegin.Tag = null; txtOperationEnd.Tag = null; txtOutRoom.Tag = null; txtInRoom.Text = ""; txtOperationBegin.Text = ""; txtOperationEnd.Text = ""; txtOutRoom.Text = ""; this.picInRoom.BackgroundImage = global::AIMSControls.Properties.Resources.入手术室; this.picOpeBegin.BackgroundImage = global::AIMSControls.Properties.Resources.手术开始; this.picOpeEnd.BackgroundImage = global::AIMSControls.Properties.Resources.手术结束; this.picOutRoom.BackgroundImage = global::AIMSControls.Properties.Resources.出手术室; } /// /// 出室方法 /// private void EndOperationOutRoom() { if (_record == null || _record.StateName != "手术中") return; try { //CloseOtherFrom(); //保存持续加药未结束药品 foreach (FactDrug temp in _record.FactDrugList) { if (temp.IsContinue == 1 && temp.DrugBeginTime == temp.DrugEndTime) { temp.DrugEndTime = _record.OutRoomTime.Value; temp.OperatorNo = PublicMethod.OperatorNo; temp.OperatorName = PublicMethod.OperatorName; temp.OperateDate = DateTime.Now; BFactDrug.Update(temp); } } //保存持续事件未结束事件 foreach (FactEvents temp in _record.FactEventsList) { if (temp.IsContinue == 1 && temp.EventBeginTime == temp.EventEndTime) { temp.EventEndTime = _record.OutRoomTime; temp.OperatorNo = PublicMethod.OperatorNo; temp.OperatorName = PublicMethod.OperatorName; temp.OperateDate = DateTime.Now; BFactEvents.Update(temp); } } _record.StateName = "手术结束"; BOperationApply.UpdateApplyState(ApplyId, 8); BOperationRecord.UpdateState(PatientId, 1, 2); //PublicMethod.WriteLog("结束转出手术: " + _record.Id); //TipBox.Hidden(true); State = AIMSExtension.EditState.BROWSE; btnCancelOperation.Enabled = false; btnCancelIn.Enabled = false; btnSelectPatient.Enabled = true; DisposeTimer(); //ReviewEvent(); } catch (Exception exp) { PublicMethod.WriteLog(exp, ""); } } /// /// 出室状态 /// /// /// private bool GetOpeState(ref string message) { bool isTrue = true; if (_record.OpeRecordInfo.OperationLevel == null || _record.OpeRecordInfo.OperationLevel.ToString().Trim() == "") { message = "请与手术信息选择手术分级!"; isTrue = false; } if (PublicMethod.RoleName.Contains("术中填写手术等级切口等级")) { if (_record.OpeRecordInfo.OperationCut == null || _record.OpeRecordInfo.OperationCut.ToString().Trim() == "") { message = "请与手术信息选择手术切口!"; isTrue = false; } if (_record.OperationDoctor == null || _record.OperationDoctor.Trim() == "") { message = "请添加手术医师!"; isTrue = false; } } return isTrue; } public void ClearRecordDate() { _applianceUseType = null; _applianceUseType2 = null; panel8.VerticalScroll.Value = 0; //清空记录点并重新加载 ClearTimeText(); //关闭采集的服务 DisposeTimer(); lblHR.Text = "--"; lblRESP.Text = "--"; lblSpo2.Text = "--"; lblPR.Text = "--"; lblDia.Text = "---/---"; lblHR.ForeColor = Color.Green; lblRESP.ForeColor = Color.DarkOrange; lblSpo2.ForeColor = Color.Cyan; lblPR.ForeColor = Color.Green; lblDia.ForeColor = Color.Red; if (templateManage != null) { templateManage.ControlClear(); } txtRemark.Text = ""; txtInstrumentNurse.Text = ""; txtTourNurse.Text = ""; txtOperationDoctor.Text = ""; panelQXList.Controls.Clear(); _record = null; } #endregion #region 右侧按钮 private void btndptz_Click(object sender, EventArgs e) { frmNoticeLargeScreen fnc = new frmNoticeLargeScreen(); if (_record != null) { fnc.lblName.Text = _record.Name; fnc.textBox2.Focus(); fnc.groupBox1.Visible = false; } fnc.ShowDialog(); } private void btnsbwh_Click(object sender, EventArgs e) { frmInstrumentRegistration frm = new frmInstrumentRegistration(); frm.Show(); } private void btnsjzx_Click(object sender, EventArgs e) { if (_record != null) { EMRExtension.OpenEMRS(_record.PatientId.Value, _record.OperationApplyId.Value); } } #endregion #region 器械清点 #region 加载手术手术清点单记录信息 private void LoadOperationGoodsBillRecord() { if (_record.InstrumentList != null && _record.InstrumentList.Id != null) { if (_record.InstrumentList.ApplianceUseType != null && _record.InstrumentList.ApplianceUseType != "") _applianceUseType = BApplianceUseType.Select(" id in (" + _record.InstrumentList.ApplianceUseType + ")", null, RecursiveType.None, 0); if (_applianceUseType == null || _applianceUseType.Count == 0) { _applianceUseType = new List(); _appliance = BAppliance.GetApplianiceByIds(""); } else { DataTable newDataTable = null; _appliance = BAppliance.GetApplianiceNumberByIds(_applianceUseType[0].TheApplianceId, _applianceUseType[0].ApplianceNumber); newDataTable = _appliance.Clone(); foreach (ApplianceUseType item in _applianceUseType) { DataTable dt = BAppliance.GetApplianiceNumberByIds(item.TheApplianceId, item.ApplianceNumber); object[] obj = new object[newDataTable.Columns.Count]; //添加DataTable1的数据 for (int i = 0; i < dt.Rows.Count; i++) { dt.Rows[i].ItemArray.CopyTo(obj, 0); newDataTable.Rows.Add(obj); } } _appliance = newDataTable; } if (_appliance != null) FullUcControlsToPanel(panelQXList, _appliance, _record.InstrumentList, ref i1, ref j1); } } private void LoadOperationGoodsBillRecord2() { if (_record.InstrumentList2 != null && _record.InstrumentList2.Id != null) { if (_record.InstrumentList2.ApplianceUseType != null && _record.InstrumentList2.ApplianceUseType != "") _applianceUseType2 = BApplianceUseType.Select(" id in (" + _record.InstrumentList2.ApplianceUseType + ")", null, RecursiveType.None, 0); if (_applianceUseType2 == null || _applianceUseType2.Count == 0) { _applianceUseType2 = new List(); _appliance2 = BAppliance.GetApplianiceByIds(""); } else { DataTable newDataTable = null; _appliance2 = BAppliance.GetApplianiceNumberByIds(_applianceUseType2[0].TheApplianceId, _applianceUseType2[0].ApplianceNumber); newDataTable = _appliance2.Clone(); foreach (ApplianceUseType item in _applianceUseType2) { DataTable dt = BAppliance.GetApplianiceNumberByIds(item.TheApplianceId, item.ApplianceNumber); object[] obj = new object[newDataTable.Columns.Count]; //添加DataTable1的数据 for (int i = 0; i < dt.Rows.Count; i++) { dt.Rows[i].ItemArray.CopyTo(obj, 0); newDataTable.Rows.Add(obj); } } _appliance2 = newDataTable; } if (_appliance2 != null) FullUcControlsToPanel(panelQXList2, _appliance2, _record.InstrumentList2, ref i2, ref j2); } } #endregion #region 选择器械包 private void FirstbtnEnter() { if (_applianceUseType == null) { _applianceUseType = new List(); ApplianceUseType _nowApplianceUseType = BApplianceUseType.SelectSingle(1, RecursiveType.None, 0); _applianceUseType.Add(_nowApplianceUseType); DataTable newDataTable = null; if (_applianceUseType.Count > 0) _appliance = BAppliance.GetApplianiceNumberByIds(_applianceUseType[0].TheApplianceId, _applianceUseType[0].ApplianceNumber); newDataTable = _appliance.Clone(); foreach (ApplianceUseType item in _applianceUseType) { if (item.TheApplianceId != null && item.TheApplianceId != "") { DataTable dt = BAppliance.GetApplianiceNumberByIds(item.TheApplianceId, item.ApplianceNumber); object[] obj = new object[newDataTable.Columns.Count]; //添加DataTable1的数据 for (int i = 0; i < dt.Rows.Count; i++) { dt.Rows[i].ItemArray.CopyTo(obj, 0); newDataTable.Rows.Add(obj); } } } _appliance = newDataTable; FullUcControlsToPanel(panelQXList, _appliance, _record.InstrumentList, ref i1, ref j1); } } private void FirstbtnEnter2() { if (_applianceUseType2 == null) { _applianceUseType2 = new List(); ApplianceUseType _nowApplianceUseType = BApplianceUseType.SelectSingle(1, RecursiveType.None, 0); _applianceUseType2.Add(_nowApplianceUseType); DataTable newDataTable = null; if (_applianceUseType2.Count > 0) _appliance2 = BAppliance.GetApplianiceNumberByIds(_applianceUseType2[0].TheApplianceId, _applianceUseType2[0].ApplianceNumber); newDataTable = _appliance2.Clone(); foreach (ApplianceUseType item in _applianceUseType2) { if (item.TheApplianceId != null && item.TheApplianceId != "") { DataTable dt = BAppliance.GetApplianiceNumberByIds(item.TheApplianceId, item.ApplianceNumber); object[] obj = new object[newDataTable.Columns.Count]; //添加DataTable1的数据 for (int i = 0; i < dt.Rows.Count; i++) { dt.Rows[i].ItemArray.CopyTo(obj, 0); newDataTable.Rows.Add(obj); } } } _appliance2 = newDataTable; FullUcControlsToPanel(panelQXList2, _appliance2, _record.InstrumentList2, ref i2, ref j2); } } #endregion #region 加载物品控件 int i1 = 0, j1 = 0; int i2 = 0, j2 = 0; int Incount = 0; int IncRowsount = 25; /// /// 加载物品控件到指定的Panel /// /// 指定的Panel /// 物品数据表 private void FullUcControlsToPanel(Panel panel, DataTable dt, OperationRecordInstrumentList Instrument, ref int i, ref int j) { i = 0; j = 0; Incount = 0; panel.Controls.Clear(); foreach (DataRow dr in dt.Rows) { if (Incount >= 51) break; ApplianceRecord applic = null; if (Instrument.ApplianceRecordList != null && Instrument.ApplianceRecordList.Count > 0) { foreach (ApplianceRecord app in Instrument.ApplianceRecordList) { if (app.ApplianceId != null && app.ApplianceId == Convert.ToInt32(dr["Id"])) { applic = app; break; } } } //if (applic == null) continue; UCOperationGoodsBill5 uc = new UCOperationGoodsBill5(applic); uc.SelectTextBoxEvent += Uc_SelectTextBoxEvent; uc.OperationRecordId = Convert.ToInt32(_record.Id); uc.GoodsId = Convert.ToInt32(dr["Id"]); uc.GoodsName = dr["Name"].ToString(); if (applic == null) { string ApplianceNumber = dr["ApplianceNumber"].ToString(); uc.GoodsNumber = ApplianceNumber; } uc.Location = new Point((uc.Width) * i, (uc.Height - 1) * j); uc.TabIndex = Incount + 1; panel.Controls.Add(uc); Incount++; j++; if (j == IncRowsount) { j = 0; i++; } } if (Instrument.ApplianceRecordList != null && Instrument.ApplianceRecordList.Count > 0) { foreach (ApplianceRecord app in Instrument.ApplianceRecordList) { if (Incount >= 51) break; ApplianceRecord applic = null; if (app.ApplianceId == 0) { applic = app; } if (applic == null) continue; UCOperationGoodsBill5 uc = new UCOperationGoodsBill5(applic); uc.SelectTextBoxEvent += Uc_SelectTextBoxEvent; uc.lblGoodsName.ReadOnly = false; uc.OperationRecordId = Convert.ToInt32(_record.Id); uc.GoodsName = app.ApplianceName; uc.Location = new Point((uc.Width) * i, (uc.Height - 1) * j); uc.TabIndex = Incount + 1; panel.Controls.Add(uc); Incount++; j++; if (j == IncRowsount) { j = 0; i++; } } } panel.Height = new UCOperationGoodsBill5().Height * IncRowsount; } private void button1_Click(object sender, EventArgs e) { if (superTabMain.SelectedTab.Name == "spTabQXQDD") { ApplianceRecord app = new ApplianceRecord(); app.OperationRecordId = _record.Id.Value; UCOperationGoodsBill5 uc = new UCOperationGoodsBill5(app); uc.SelectTextBoxEvent += Uc_SelectTextBoxEvent; uc.lblGoodsName.ReadOnly = false; uc.GoodsNumber = ""; uc.Location = new Point((uc.Width) * i1, (uc.Height - 1) * j1); if (_record.InstrumentList.ApplianceRecordList != null) _record.InstrumentList.ApplianceRecordList.Add(app); panelQXList.Controls.Add(uc); j1++; if (j1 == 25) { j1 = 0; i1++; } } else { ApplianceRecord app = new ApplianceRecord(); app.OperationRecordId = _record.Id.Value; UCOperationGoodsBill5 uc = new UCOperationGoodsBill5(app); uc.SelectTextBoxEvent += Uc_SelectTextBoxEvent; uc.lblGoodsName.ReadOnly = false; uc.GoodsNumber = ""; uc.Location = new Point((uc.Width) * i2, (uc.Height - 1) * j2); if (_record.InstrumentList2.ApplianceRecordList != null) _record.InstrumentList2.ApplianceRecordList.Add(app); panelQXList2.Controls.Add(uc); j2++; if (j2 == 25) { j2 = 0; i2++; } } } private void Uc_SelectTextBoxEvent(object uc, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { SendKeys.Send("{TAB}"); } else if (e.KeyCode == Keys.Up) { if (((uc as TextBox).Parent).TabIndex == 1) return; foreach (Control item in ((uc as TextBox).Parent).Parent.Controls) { if (item is UCOperationGoodsBill5 && item.TabIndex == ((uc as TextBox).Parent).TabIndex - 1) { foreach (Control citem in item.Controls) { if (citem.TabIndex == ((uc as TextBox).TabIndex)) { citem.Focus(); break; } } break; } } } else if (e.KeyCode == Keys.Left) { //MessageBox.Show(((uc as TextBox).TabIndex - 1).ToString()); foreach (Control item in ((uc as TextBox).Parent).Controls) { if (item.TabIndex == ((uc as TextBox).TabIndex - 1)) { item.Focus(); break; } } } else if (e.KeyCode == Keys.Right) { SendKeys.Send("{TAB}"); } else if (e.KeyCode == Keys.Down) { if (((uc as TextBox).Parent).TabIndex == 50) return; foreach (Control item in ((uc as TextBox).Parent).Parent.Controls) { if (item is UCOperationGoodsBill5 && item.TabIndex == ((uc as TextBox).Parent).TabIndex + 1) { foreach (Control citem in item.Controls) { if (citem.TabIndex == ((uc as TextBox).TabIndex)) { citem.Focus(); break; } } break; } } } } #endregion #region 自定义方法 private void PanelSave_Click(object sender, EventArgs e) { if (superTabMain.SelectedTab.Name == "spTabQXQDD") { SaveInstrument(sender); ReviewEvent(); new frmMessageBox().Show(); } else { SaveInstrument2(sender); ReviewEvent(); new frmMessageBox().Show(); } } private void SaveInstrument(object sender) { try { btnSelectPatient.Focus(); _record.InstrumentList.OperationRecordId = this._record.Id; if (_applianceUseType != null) { List list = new List(); foreach (ApplianceUseType item in _applianceUseType) { list.Add(item.Id.Value); } _record.InstrumentList.ApplianceUseType = string.Join(",", list.ToArray()); } _record.InstrumentList.TagPicture = "";// Convert.ToBase64String(PublicToDoument.ImageToBytes(pictureBox1.Image)); _record.InstrumentList.JsonTextData = "";// PublicToDoument.SerializeControl(panel18, _record, new List ()); _record.InstrumentList.InstrumentNurse = txtInstrumentNurse.Text; _record.InstrumentList.TourNurse = txtTourNurse.Text; _record.InstrumentList.Remark = txtRemark.Text; _record.InstrumentList.OperatorNo = PublicMethod.OperatorNo; _record.InstrumentList.OperatorName = PublicMethod.OperatorName; _record.InstrumentList.OperateDate = DateTime.Now; if (_record.InstrumentList.Id == null || _record.InstrumentList.Id == 0) { _record.InstrumentList.Id = BOperationRecordInstrumentList.Insert(_record.InstrumentList); } else { BOperationRecordInstrumentList.Update(_record.InstrumentList); } _record.InstrumentList.ApplianceRecordList = GetApplianceRecord(); BApplianceRecord.InsertListData(_record.InstrumentList.ApplianceRecordList); DBManage.AddPerson(_record, SelectOperationDoctorData, 1); DBManage.AddPerson(_record, SelectInstrumentNurseData, 6); DBManage.AddPerson(_record, SelectTourNurseData, 7); } catch (Exception ex) { PublicMethod.WriteLog(ex); } } private void SaveInstrument2(object sender) { try { btnSelectPatient.Focus(); if (_record.InstrumentList2 == null) { _record.InstrumentList2 = new OperationRecordInstrumentList(); } _record.InstrumentList2.OperationRecordId = this._record.Id; if (_applianceUseType2 != null) { List list = new List(); foreach (ApplianceUseType item in _applianceUseType2) { list.Add(item.Id.Value); } _record.InstrumentList2.ApplianceUseType = string.Join(",", list.ToArray()); } _record.InstrumentList2.TagPicture = "";// Convert.ToBase64String(PublicToDoument.ImageToBytes(pictureBox1.Image)); _record.InstrumentList2.JsonTextData = "";// PublicToDoument.SerializeControl(panel18, _record, new List ()); _record.InstrumentList2.InstrumentNurse = txtInstrumentNurse2.Text; _record.InstrumentList2.TourNurse = txtTourNurse2.Text; _record.InstrumentList2.Remark = txtRemark2.Text; _record.InstrumentList2.OperatorNo = PublicMethod.OperatorNo; _record.InstrumentList2.OperatorName = PublicMethod.OperatorName; _record.InstrumentList2.OperateDate = DateTime.Now; if (_record.InstrumentList2.Id == null || _record.InstrumentList2.Id == 0) { _record.InstrumentList2.Id = BOperationRecordInstrumentList.Insert(_record.InstrumentList2); } else { BOperationRecordInstrumentList.Update(_record.InstrumentList2); } _record.InstrumentList2.ApplianceRecordList = GetApplianceRecord2(); BApplianceRecord.InsertListData(_record.InstrumentList2.ApplianceRecordList); //DBManage.AddPerson(_record, SelectOperationDoctorData, 1); //DBManage.AddPerson(_record, SelectInstrumentNurseData, 6); //DBManage.AddPerson(_record, SelectTourNurseData, 7); } catch (Exception ex) { PublicMethod.WriteLog(ex); } } private void superTabMain_SelectedTabChanged(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangedEventArgs e) { if (superTabMain.SelectedTab.Name == "spTabQXQDD2") { labdept.Text = _record.ApplyDepartmentName; labpname.Text = _record.Name; labsex.Text = _record.Sex; labage.Text = _record.Age; labopdate.Text = _record.OperationDate; labmno.Text = _record.OperationDate; labroom.Text = BOperationRoom.SelectSingle(_record.RoomId).Name; txtOperation.Text = ""; SelectOperationData = BFactOperationInfo.GetFactOperationInfoIdList(_record.PatientId.Value); foreach (int RowId in SelectOperationData) { txtOperation.Text += BOperation.SelectSingle(RowId).Name + " ,"; } if (txtOperation.Text != "") txtOperation.Text = txtOperation.Text.Substring(0, txtOperation.Text.LastIndexOf(" ,")); txtOperationPosition.Text = ""; SelectOperationPositionData = BFactOperationPosition.GetFactOperationPositionIdList(_record.PatientId.Value); foreach (int RowId in SelectOperationPositionData) { txtOperationPosition.Text += BOperationPosition.SelectSingle(RowId).Name + " ,"; } if (txtOperationPosition.Text != "") txtOperationPosition.Text = txtOperationPosition.Text.Substring(0, txtOperationPosition.Text.LastIndexOf(" ,")); txtOperationDoctor2.Text = txtOperationDoctor.Text; //txtInstrumentNurse2.Text = txtInstrumentNurse.Text; //txtTourNurse2.Text = txtTourNurse.Text; } else { templateManage.OpeRecord = BOperationRecord.getRecord(_record, PatientId, RecoverId); templateManage.BindOperationRecordValueAll(templateManage.OpeRecord); templateManage.Bind(); zgcAnaesRecord.Refresh(); txtOperationDoctor.Text = txtOperationDoctor2.Text; //txtInstrumentNurse.Text = txtInstrumentNurse2.Text; //txtTourNurse.Text = txtTourNurse2.Text; } } /// /// 得到当前使用的器械对象集合 /// /// private List GetApplianceRecord() { List applianceRecordList = new List(); foreach (Control ctl in panelQXList.Controls) { ApplianceRecord applianceRecord = new ApplianceRecord(); if (ctl is UCOperationGoodsBill5) { UCOperationGoodsBill5 UCOperationGoodsBill5 = ctl as UCOperationGoodsBill5; if (UCOperationGoodsBill5.Id != null) { applianceRecord.Id = UCOperationGoodsBill5.Id; } applianceRecord.OperationRecordId = this._record.Id; applianceRecord.ApplianceId = UCOperationGoodsBill5.GoodsId; applianceRecord.ApplianceName = UCOperationGoodsBill5.GoodsName; if (_record.InstrumentList != null && _record.InstrumentList.Id != null) { applianceRecord.OperationGoodsBillRecord = _record.InstrumentList.Id; } if (UCOperationGoodsBill5.txtFront.Text != "") applianceRecord.OpeFront = UCOperationGoodsBill5.OpeFront; else applianceRecord.OpeFront = null; if (UCOperationGoodsBill5.txtDoing.Text != "") applianceRecord.OpeDoing = UCOperationGoodsBill5.OpeDoing; else applianceRecord.OpeDoing = null; if (UCOperationGoodsBill5.txtCloseFront.Text != "") applianceRecord.CloseFront = UCOperationGoodsBill5.CloseFront; else applianceRecord.CloseFront = null; if (UCOperationGoodsBill5.txtCloseLast.Text != "") applianceRecord.CloseLast = UCOperationGoodsBill5.CloseLast; else applianceRecord.CloseLast = null; if (UCOperationGoodsBill5.txtSkinCloseLast.Text != "") applianceRecord.SkinCloseLast = UCOperationGoodsBill5.SkinCloseLast; else applianceRecord.SkinCloseLast = null; applianceRecordList.Add(applianceRecord); } } return applianceRecordList; } private List GetApplianceRecord2() { List applianceRecordList = new List(); foreach (Control ctl in panelQXList2.Controls) { ApplianceRecord applianceRecord = new ApplianceRecord(); if (ctl is UCOperationGoodsBill5) { UCOperationGoodsBill5 UCOperationGoodsBill5 = ctl as UCOperationGoodsBill5; if (UCOperationGoodsBill5.Id != null) { applianceRecord.Id = UCOperationGoodsBill5.Id; } applianceRecord.OperationRecordId = this._record.Id; applianceRecord.ApplianceId = UCOperationGoodsBill5.GoodsId; applianceRecord.ApplianceName = UCOperationGoodsBill5.GoodsName; if (_record.InstrumentList2 != null && _record.InstrumentList2.Id != null) { applianceRecord.OperationGoodsBillRecord = _record.InstrumentList2.Id; } if (UCOperationGoodsBill5.txtFront.Text != "") applianceRecord.OpeFront = UCOperationGoodsBill5.OpeFront; else applianceRecord.OpeFront = null; if (UCOperationGoodsBill5.txtDoing.Text != "") applianceRecord.OpeDoing = UCOperationGoodsBill5.OpeDoing; else applianceRecord.OpeDoing = null; if (UCOperationGoodsBill5.txtCloseFront.Text != "") applianceRecord.CloseFront = UCOperationGoodsBill5.CloseFront; else applianceRecord.CloseFront = null; if (UCOperationGoodsBill5.txtCloseLast.Text != "") applianceRecord.CloseLast = UCOperationGoodsBill5.CloseLast; else applianceRecord.CloseLast = null; if (UCOperationGoodsBill5.txtSkinCloseLast.Text != "") applianceRecord.SkinCloseLast = UCOperationGoodsBill5.SkinCloseLast; else applianceRecord.SkinCloseLast = null; applianceRecordList.Add(applianceRecord); } } return applianceRecordList; } #endregion #endregion #region 打印方法 public List mPanes = new List(); public List UpPanes = new List(); int m_startPrintPage;// 打印的起始页码 int m_endPrintPage;//打印的终止页码 int m_PageIndex;// 当前打印页码 int count = 0; private void pDoc_PrintPage(object sender, PrintPageEventArgs e) { System.Drawing.Printing.PrintDocument pDoc = sender as System.Drawing.Printing.PrintDocument; m_startPrintPage = pDoc.PrinterSettings.FromPage; m_endPrintPage = pDoc.PrinterSettings.ToPage; //if (pdg!=null) //{ //m_startPrintPage = pdg.pa //m_endPrintPage = pDoc.PrinterSettings.ToPage; //} if (m_startPrintPage == 0 && m_endPrintPage == 0) { int printCount = mPanes.Count; if (mPanes.Count > 0 && count < printCount) { mPanes[count].Draw(e.Graphics); count++; if (count < printCount) { e.HasMorePages = true; } } else { e.HasMorePages = false; } } else { try { //如果当前打印页小于打印起始页码,就递增一页,直至等于打印起始页码 if (m_startPrintPage > 0) { while (m_PageIndex < m_startPrintPage) { m_PageIndex++; } } mPanes[m_PageIndex - 1].Draw(e.Graphics); //当前打印页加1 m_PageIndex++; if (m_PageIndex <= m_endPrintPage) { e.HasMorePages = true; } //如果设置了打印页码范围并且当前打印页大于打印终止页码,终止打印,设置e.HasMorePages参数,初始化相关变量 if ((m_startPrintPage > 0) && (m_PageIndex > m_endPrintPage)) { e.HasMorePages = false; m_PageIndex = 1; return; } } catch (Exception) { //出错处理,终止打印,设置e.HasMorePages参数,初始化相关变量 e.HasMorePages = false; m_PageIndex = 1; } } } private void plPrintBrowse_Click(object sender, EventArgs e) { if (_record == null || _record.Id == 0) return; if (txtOutRoom.Focused) { zgcAnaesRecord.Focus(); } if (superTabMain.SelectedTab.Name == "spTabQXQDD") { SaveInstrument(sender); } else { SaveInstrument2(sender); } mPanes = new List(); UpPanes = new List(); PrintDocPage(null, null); count = 0; System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument(); pDoc.DefaultPageSettings.Landscape = false; if (templateManage.Typesetting == TypesettingEnum.Horizontal) { pDoc.DefaultPageSettings.Landscape = true; } pDoc.OriginAtMargins = true; pDoc.DefaultPageSettings.PrinterResolution.Kind = PrinterResolutionKind.High; pDoc.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0); pDoc.PrintPage -= new PrintPageEventHandler(pDoc_PrintPage); pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage); PrintPreviewDialog pdg = new PrintPreviewDialog(); foreach (Control ctl in pdg.Controls) { if (ctl is ToolStrip) { ToolStrip toolbar = ctl as ToolStrip; toolbar.Items.RemoveAt(0); ToolStrip tb = ctl as ToolStrip; //tb.ImageList.Images.Add(Properties.Resources.); ToolStripButton settingBtn = new ToolStripButton(); settingBtn.ToolTipText = "打印"; settingBtn.Text = "打印"; //settingBtn.ImageIndex = tb.ImageList.Images.Count - 1; settingBtn.Click += PageSetting_Click; tb.Items.Insert(0, settingBtn); } } pdg.Width = zgcAnaesRecord.Width + 50; pdg.ClientSize = new System.Drawing.Size(zgcAnaesRecord.Width, zgcAnaesRecord.Height); Form f = (Form)pdg; f.WindowState = FormWindowState.Maximized; pdg.Document = pDoc; pdg.ShowDialog(); pdg.Focus(); pdg.BringToFront(); plRefresh_Click(null, null); } private void PageSetting_Click(object sender, EventArgs e) { plPrint_Click(null, null); } private void PrintDocPage(object sender, PrintPageEventArgs e) { if (templateManage != null) { if (superTabMain.SelectedTab.Name == "spTabQXQDD") { _record.InstrumentList.ApplianceRecordList = GetApplianceRecord(); _record.InstrumentList.InstrumentNurse = txtInstrumentNurse.Text; _record.InstrumentList.TourNurse = txtTourNurse.Text; _record.InstrumentList.Remark = txtRemark.Text; PrintDocPane(e, zgcAnaesRecord, templateManage); } else { if (_record.InstrumentList2 != null && _record.InstrumentList2.Id != null) { _record.InstrumentList = _record.InstrumentList2; _record.InstrumentList.ApplianceRecordList = GetApplianceRecord2(); //_record.InstrumentList.InstrumentNurse = txtInstrumentNurse2.Text; //_record.InstrumentList.TourNurse = txtTourNurse2.Text; _record.InstrumentList.Remark = txtRemark2.Text; PrintDocPane(e, zgcAnaesRecord, templateManage); } } } } private void PrintDocPane(PrintPageEventArgs e, ZedGraphControl zedGraph, TemplateManage template) { foreach (AreaManageBase area in template.ManageList) { area.setPrint(false); area.BindTempData(); } int zedGraphMainWidth = zedGraph.Size.Width; int zedGraphMainHeight = zedGraph.Size.Height; if (templateManage.Typesetting == TypesettingEnum.Horizontal) { int width = 1168; int height = Convert.ToInt32(width / 1.414) - 2; zedGraph.Size = new Size(width, height); zedGraph.Width = width; zedGraph.Height = height; } else { int width = 825; int height = Convert.ToInt32(width * 1.414) + 2; zedGraph.Size = new Size(width, height); zedGraph.Width = width; zedGraph.Height = height; } MasterPane mPane = zedGraph.MasterPane; //this.MasterPane; mPane.Border.IsVisible = false; GraphPane cPane = mPane.PaneList[0]; //graphPane; //当前窗体中的矩形区域大小 RectangleF saveRect = mPane.Rect; mPanes.Add(mPane.Clone()); if (e != null) mPane.Draw(e.Graphics); //在打印文档中画出MasterPane内容 using (Graphics g = zedGraph.CreateGraphics()) { mPane.ReSize(g, saveRect); } zedGraph.Size = new Size(zedGraphMainWidth, zedGraphMainHeight); template.initChart(); UpPanes.Add(mPane.Clone()); Panel panel = zedGraph.Parent as Panel; panel.VerticalScroll.Value = 0; templateManage.SetPYL(true); foreach (AreaManageBase area in template.ManageList) { area.setPrint(true); } } private PublicUI.UI.frmSelectPerson frmTourNurse; private List SelectTourNurseData = new List(); //一助 private void txtTourNurse_Click(object sender, EventArgs e) { frmTourNurse = new PublicUI.UI.frmSelectPerson(); frmTourNurse.PersonType = "手术室护士"; frmTourNurse.SelectDepartmentName = "手术室"; frmTourNurse.SelectPersonData = SelectTourNurseData; frmTourNurse.FormClosed += new FormClosedEventHandler(frmTourNurse_FormClosed); frmTourNurse.ShowDialog(); } void frmTourNurse_FormClosed(object sender, FormClosedEventArgs e) { txtTourNurse.Text = ""; if (frmTourNurse.SelectPersonData.Count > 0) { SelectTourNurseData = frmTourNurse.SelectPersonData; foreach (int RowId in frmTourNurse.SelectPersonData) { txtTourNurse.Text += BPerson.SelectSingle(RowId).Name + ","; } int idxStart = txtTourNurse.Text.LastIndexOf(","); txtTourNurse.Text = txtTourNurse.Text.Substring(0, idxStart); } //txtTourNurse2.Text = txtTourNurse.Text; } private List SelectInstrumentNurseData = new List(); //一助 private PublicUI.UI.frmSelectPerson frmInstrumentNurse; private void txtInstrumentNurse_Click(object sender, EventArgs e) { frmInstrumentNurse = new PublicUI.UI.frmSelectPerson(); frmInstrumentNurse.PersonType = "手术室护士"; frmInstrumentNurse.SelectDepartmentName = "手术室"; frmInstrumentNurse.SelectPersonData = SelectInstrumentNurseData; frmInstrumentNurse.FormClosed += new FormClosedEventHandler(frmInstrumentNurse_FormClosed); frmInstrumentNurse.ShowDialog(); } void frmInstrumentNurse_FormClosed(object sender, FormClosedEventArgs e) { txtInstrumentNurse.Text = ""; if (frmInstrumentNurse.SelectPersonData.Count > 0) { SelectInstrumentNurseData = frmInstrumentNurse.SelectPersonData; foreach (int RowId in frmInstrumentNurse.SelectPersonData) { txtInstrumentNurse.Text += BPerson.SelectSingle(RowId).Name + ","; } int idxStart = txtInstrumentNurse.Text.LastIndexOf(","); txtInstrumentNurse.Text = txtInstrumentNurse.Text.Substring(0, idxStart); } //txtInstrumentNurse2.Text = txtInstrumentNurse.Text; } private PublicUI.UI.frmSelectPerson frmOperationDoctor; private List SelectOperationDoctorData = new List(); //一助 private void txtOperationDoctor_DoubleClick(object sender, EventArgs e) { frmOperationDoctor = new PublicUI.UI.frmSelectPerson(); frmOperationDoctor.PersonType = "医生"; frmOperationDoctor.SelectDepartmentName = _record.ApplyDepartmentName; frmOperationDoctor.SelectPersonData = SelectOperationDoctorData; frmOperationDoctor.FormClosed += new FormClosedEventHandler(frmOperationDoctor_FormClosed); frmOperationDoctor.ShowDialog(); } void frmOperationDoctor_FormClosed(object sender, FormClosedEventArgs e) { txtOperationDoctor.Text = ""; if (frmOperationDoctor.SelectPersonData.Count > 0) { SelectOperationDoctorData = frmOperationDoctor.SelectPersonData; foreach (int RowId in frmOperationDoctor.SelectPersonData) { txtOperationDoctor.Text += BPerson.SelectSingle(RowId).Name + ","; } int idxStart = txtOperationDoctor.Text.LastIndexOf(","); txtOperationDoctor.Text = txtOperationDoctor.Text.Substring(0, idxStart); } txtOperationDoctor2.Text = txtOperationDoctor.Text; } private PublicUI.UI.frmSelectPerson frmTourNurse2; private List SelectTourNurseData2 = new List(); //一助 private void txtTourNurse2_Click(object sender, EventArgs e) { frmTourNurse2 = new PublicUI.UI.frmSelectPerson(); frmTourNurse2.PersonType = "手术室护士"; frmTourNurse2.SelectDepartmentName = "手术室"; frmTourNurse2.SelectPersonData = SelectTourNurseData2; frmTourNurse2.FormClosed += new FormClosedEventHandler(frmTourNurse2_FormClosed); frmTourNurse2.ShowDialog(); } void frmTourNurse2_FormClosed(object sender, FormClosedEventArgs e) { txtTourNurse2.Text = ""; if (frmTourNurse2.SelectPersonData.Count > 0) { SelectTourNurseData2 = frmTourNurse2.SelectPersonData; foreach (int RowId in frmTourNurse2.SelectPersonData) { txtTourNurse2.Text += BPerson.SelectSingle(RowId).Name + ","; } int idxStart = txtTourNurse2.Text.LastIndexOf(","); txtTourNurse2.Text = txtTourNurse2.Text.Substring(0, idxStart); } } private List SelectInstrumentNurseData2 = new List(); //一助 private PublicUI.UI.frmSelectPerson frmInstrumentNurse2; private void txtInstrumentNurse2_Click(object sender, EventArgs e) { frmInstrumentNurse2 = new PublicUI.UI.frmSelectPerson(); frmInstrumentNurse2.PersonType = "手术室护士"; frmInstrumentNurse2.SelectDepartmentName = "手术室"; frmInstrumentNurse2.SelectPersonData = SelectInstrumentNurseData2; frmInstrumentNurse2.FormClosed += new FormClosedEventHandler(frmInstrumentNurse2_FormClosed); frmInstrumentNurse2.ShowDialog(); } void frmInstrumentNurse2_FormClosed(object sender, FormClosedEventArgs e) { txtInstrumentNurse2.Text = ""; if (frmInstrumentNurse2.SelectPersonData.Count > 0) { SelectInstrumentNurseData2 = frmInstrumentNurse2.SelectPersonData; foreach (int RowId in frmInstrumentNurse2.SelectPersonData) { txtInstrumentNurse2.Text += BPerson.SelectSingle(RowId).Name + ","; } int idxStart = txtInstrumentNurse2.Text.LastIndexOf(","); txtInstrumentNurse2.Text = txtInstrumentNurse2.Text.Substring(0, idxStart); } } private void button9_Click(object sender, EventArgs e) { if (superTabMain.SelectedTab.Name == "spTabQXQDD") { TextBoxAddEventSources(panelQX, @"/"); } else { TextBoxAddEventSources(panelQX2, @"/"); } } private void TextBoxAddEventSources(Control _panel, string TextValue) { foreach (Control clTemp in _panel.Controls) { if (clTemp.Controls.Count > 0) { TextBoxAddEventSources(clTemp, TextValue); } else { if (clTemp is TextBox) { TextBox cbT = (clTemp as TextBox); if (cbT != null && cbT.Text.Trim() == "") { cbT.Text = TextValue; } } if (clTemp is UText) { UText cbT = (clTemp as UText); if (cbT != null && cbT.Text.Trim() == "") { cbT.Text = TextValue; } } } } } private PublicUI.UI.frmOperationPosition frmOperationPosition; private List SelectOperationPositionData = new List(); //手术部位 private void txtOperationPosition_DoubleClick(object sender, EventArgs e) { frmOperationPosition = new PublicUI.UI.frmOperationPosition(); frmOperationPosition.FormClosed += new FormClosedEventHandler(frmOperationPosition_FormClosed); frmOperationPosition.SelectOperationPositionData = SelectOperationPositionData; frmOperationPosition.ShowDialog(); } void frmOperationPosition_FormClosed(object sender, FormClosedEventArgs e) { txtOperationPosition.Text = ""; if (frmOperationPosition.SelectOperationPositionData.Count > 0) { SelectOperationPositionData = frmOperationPosition.SelectOperationPositionData; foreach (int RowId in frmOperationPosition.SelectOperationPositionData) { txtOperationPosition.Text += BOperationPosition.SelectSingle(RowId).Name + " ,"; } int idxStart = txtOperationPosition.Text.LastIndexOf(" ,"); txtOperationPosition.Text = txtOperationPosition.Text.Substring(0, idxStart); } DBManage.AddOperationPosition(_record, SelectOperationPositionData); } private PublicUI.UI.frmSelectOperation frmOperation; private List SelectOperationData = new List(); //手术 private void txtOperation_DoubleClick(object sender, EventArgs e) { frmOperation = new PublicUI.UI.frmSelectOperation(); frmOperation.FormClosed += new FormClosedEventHandler(frmOperation_FormClosed); frmOperation.SelectRightData = SelectOperationData; frmOperation.ShowDialog(); } void frmOperation_FormClosed(object sender, FormClosedEventArgs e) { txtOperation.Text = ""; if (frmOperation.SelectRightData.Count > 0) { SelectOperationData = frmOperation.SelectRightData; foreach (int RowId in frmOperation.SelectRightData) { txtOperation.Text += BOperation.SelectSingle(RowId).Name + " ,"; } int idxStart = txtOperation.Text.LastIndexOf(" ,"); txtOperation.Text = txtOperation.Text.Substring(0, idxStart); } DBManage.AddOperation(_record, SelectOperationData); } private void btnChage_Click(object sender, EventArgs e) { if (_record != null) { EMRExtension.OpenFeesRecord(_record, "护士"); } } private void frmAnasRecordInstrument_VisibleChanged(object sender, EventArgs e) { if (this.Visible == false) { panel8.VerticalScroll.Value = 0; if (templateManage != null) templateManage.SetPYL(); if (_record != null && _record.StateName == "手术中" && State != AIMSExtension.EditState.BROWSE) { DisposeTimer(); } } else { if (_record != null && _record.StateName == "手术中" && State != AIMSExtension.EditState.BROWSE) { StartTimer(); } } } private void plPrint_Click(object sender, EventArgs e) { if (_record == null || _record.Id == 0) return; if (txtOutRoom.Focused) { zgcAnaesRecord.Focus(); } string messing = ""; if (GetOpeState(ref messing) == false) { if (messing == "请与手术信息选择手术分级!" || messing == "请与手术信息选择手术切口!") btnOperationInfo_Click(null, null); return; } if (_record.StateName == "手术中") { if (txtOutRoom.CustomFormat == " ") { txtOutRoom.BackColor = Color.Red; MessageBox.Show("手术还没有结束,请填写出室时间后打印!", "系统提示"); return; } } if (superTabMain.SelectedTab.Name == "spTabQXQDD") { SaveInstrument(sender); } else { SaveInstrument2(sender); } try { mPanes = new List(); UpPanes = new List(); PrintDocPage(null, null); count = 0; m_PageIndex = 0; System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument(); pDoc.DefaultPageSettings.Landscape = false; if (templateManage.Typesetting == TypesettingEnum.Horizontal) { pDoc.DefaultPageSettings.Landscape = true; } pDoc.OriginAtMargins = true; pDoc.DefaultPageSettings.PrinterResolution.Kind = PrinterResolutionKind.High; pDoc.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0); pDoc.PrintPage -= new PrintPageEventHandler(pDoc_PrintPage); pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage); System.Windows.Forms.PrintDialog pDlg = new System.Windows.Forms.PrintDialog(); pDlg.Document = pDoc; pDlg.AllowSomePages = true; if (pDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { pDoc.Print(); } ControlExtension.UPDocument(_record.PatientId.Value, _record.OperationApplyId.Value, _record.Id.Value, _record.RecoverId.Value, "20", "护理记录单"); plRefresh_Click(null, null); } catch (Exception exp) { PublicMethod.WriteLog(exp, ""); } } #endregion } }