AIMS/AIMS/OperationDoing/AnasRecordBill/frmAnasRecordInstrument.cs
2022-11-15 20:36:15 +08:00

1912 lines
80 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AIMS.DocManager;
using AIMS.OperationFront.UI;
using AIMS.OremrUserControl;
using AIMS.PublicUI.UI;
using AIMSBLL;
using AIMSExtension;
using AIMSModel;
using AxNsoOfficeLib;
using DCSoftDotfuscate;
using DevComponents.Editors.DateTimeAdv;
using DocumentManagement;
using DrawGraph;
using KHD_OREMRInterface;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
namespace AIMS.OperationDoing.AnasRecordBill.UI
{
public partial class frmAnasRecordInstrument : Form
{
#region
public OperationRecord _record;
public TemplateManage templateManage;
public AIMSModel.OperationRoom NowRoom;
private DataTable _appliance;
private List<ApplianceUseType> _applianceUseType;
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 frmAnasRecordInstrument()
{
InitializeComponent();
#region
this.picInRoom.BackgroundImage = global::AIMS.Properties.Resources.;
this.picOpeBegin.BackgroundImage = global::AIMS.Properties.Resources.;
this.picOpeEnd.BackgroundImage = global::AIMS.Properties.Resources.;
this.picOutRoom.BackgroundImage = global::AIMS.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);
LoadAnesRescue();
}
#endregion
#region
/// <summary>
/// 手术特殊事件时间点处理事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
{
//PublicMethod.ShowMessage("输入的时间格式不符合规范(HH:mm)");
return;
}
}
}
}
/// <summary>
/// 特殊事件触发时设置图片
/// </summary>
/// <param name="obj">显示时间的控件</param>
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);
//if (Inevent.EventName == "入室")
//{
// _record.pageCount = 0;
// ReviewEvent();
//}
//else if (Inevent.EventName == "手术开始" || Inevent.EventName == "出室" || Inevent.EventBeginTime > _record.lastPageBegin)
//{
// ReviewEvent();
//}
//else
//{
DrawEvent();
//}
}
}
/// <summary>
/// 特殊事件触发时设置图片
/// </summary>
/// <param name="obj">显示时间的控件</param>
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);
//try
//{
// if (curTimeTemp.Date < _record.PlanOperationTime.AddDays(-3).Date)
// {
// tb.Focus();
// tb.Value = DateTime.Parse(tb.Tag.ToString());
// return;
// }
//}
//catch (Exception)
//{
//}
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)
{
//if (Inevent.EventName == "入室")
//{
// _record.pageCount = 0;
// ReviewEvent();
//}
//else if (Inevent.EventName == "出室" || Inevent.EventName == "手术开始" || Inevent.EventBeginTime > _record.lastPageBegin)
//{
// ReviewEvent();
//}
//else
//{
DrawEvent();
//}
}
}
/// <summary>
/// 特殊事件触发时设置图片
/// </summary>
/// <param name="obj">显示时间的控件</param>
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();
}
}
/// <summary>
/// 判断控件对应的事件 删除事件
/// </summary>
/// <param name="EventTxtName">事件对应的控件名称</param>
/// <param name="EventName">事件名称</param>
/// <param name="tb">控件</param>
private void DeleteEventTime(string EventTxtName, string EventName, DateTimeInput tb, ref DrawGraph.FactEvents Inevent)
{
if (tb.Name.Equals(EventTxtName))
{
List<DrawGraph.FactEvents> 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::AIMS.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::AIMS.Properties.Resources.;
BOperationRecord.Update(" OperationEndTime=null where Id=@id ", new AIMSModel.ParameterList("@id", _record.Id));
}
//if (Inevent != null)
//{
// BOperationRecord.Update("OperationBeginTime=@OperationBegin,OperationEndTime=@OperationEnd,OutRoomTime=@OutRoom where Id=@id", new AIMSModel.ParameterList("@OperationBegin", _record.OperationBeginTime.HasValue ? (object)_record.OperationBeginTime.Value : (object)DBNull.Value, "@OperationEnd", _record.OperationEndTime.HasValue ? (object)_record.OperationEndTime.Value : (object)DBNull.Value, "@OutRoom", _record.OutRoomTime.HasValue ? (object)_record.OutRoomTime.Value : (object)DBNull.Value, "@id", _record.Id));
//}
}
}
/// <summary>
/// 判断控件对应的事件 插入事件
/// </summary>
/// <param name="state">0插入 1更新</param>
/// <param name="EventTxtName">事件对应的控件名称</param>
/// <param name="EventName">事件名称</param>
/// <param name="EventTime">事件对应的对象时间</param>
/// <param name="tb">控件</param>
/// <param name="curTimeTemp">事件时间</param>
/// <param name="Inevent">事件对象</param>
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 (messing != "") MessageBox.Show(messing, "系统提示");
// 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::AIMS.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::AIMS.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::AIMS.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::AIMS.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));
}
}
}
/// <summary>
/// 修改事件时间
/// </summary>
/// <param name="eventName"></param>
/// <param name="dt"></param>
public void updateEventTime(string eventName, DateTime dt, ref DrawGraph.FactEvents elist)
{
List<DrawGraph.FactEvents> 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)
{
OperationDoing.AnasRecordBill.UI.frmSelectPatientGoodsBill frmSelectPatient = new UI.frmSelectPatientGoodsBill();
frmSelectPatient.isMainOpen = true;
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;
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<AbleEditPackObj>("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));
}
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);
}
GetPhysioDataConfig();
circularProgress1.IsRunning = false;
circularProgress1.Visible = false;
zgcAnaesRecord.Visible = true;
}
private void btnOperationInfo_Click(object sender, EventArgs e)
{
if (PatientId != 0)
{
AIMS.OperationDoing.AnasRecordBill.UI.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)
{
frmAnaseDataQualityRecord frmAnaseDataQuality = new frmAnaseDataQualityRecord();
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 (_applianceUseType == null)
_applianceUseType = new List<ApplianceUseType>();
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);
//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 (NowRoom == null) return;
if (State != AIMSExtension.EditState.BROWSE)
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<DeviceCacheData> lists = DeviceCacheData.Select(" IPAddress='" + NowRoom.Ip + "' and UpdateTime>='" + DateTime.Now.AddSeconds(-300) + "'");
e.Result = lists;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
List<DeviceCacheData> lists = e.Result as List<DeviceCacheData>;
if (lists != null && lists.Count > 0)
{
DeviceCacheData deviceCacheData = lists[0];
NowPhysioData nowPhysioData = JsonConvert.DeserializeObject<NowPhysioData>(deviceCacheData.JsonData);
foreach (PropertyInfo p in nowPhysioData.GetType().GetProperties())
{
bool iswar = false;
foreach (PhysioDataConfig keyValuePair in _record.addPhysioList)
{
if (keyValuePair.Enname.ToUpper() == p.Name.ToUpper())
{
object paramValue = p.GetValue(nowPhysioData, null);
if (paramValue != null && paramValue.ToString() != string.Empty && paramValue.ToString() != "NaN" && paramValue.ToString() != "NULL")
{
double value = Double.Parse(paramValue.ToString());
value = Convert.ToInt32(value);
if (value < keyValuePair.WarningLowLimit || value > keyValuePair.WarningHighLimit)
{
iswar = true;
}
if (keyValuePair.Name == "心率")
{
lblHR.Text = value <= 0 ? "- -" : value.ToString();
if (iswar == true) lblHR.ForeColor = Color.Red; else lblHR.ForeColor = Color.Green;
}
if (keyValuePair.Name == "自主呼吸")
{
lblRESP.Text = value <= 0 ? "- -" : value.ToString();
if (iswar == true) lblRESP.ForeColor = Color.Red; else lblRESP.ForeColor = Color.Yellow;
}
if (keyValuePair.Name == "氧饱和度")
{
lblSpo2.Text = value <= 0 ? "- -" : value.ToString();
if (iswar == true) lblSpo2.ForeColor = Color.Red; else lblSpo2.ForeColor = Color.Cyan;
}
if (keyValuePair.Name == "脉率")
{
lblPR.Text = value <= 0 ? "- -" : value.ToString();
if (iswar == true) lblPR.ForeColor = Color.Red; else lblPR.ForeColor = Color.Green;
}
if (keyValuePair.Name == "无创舒张压")
{
szy = value <= 0 ? "" : value.ToString();
//if (iswar == true) lblDia.ForeColor = Color.Red; else lblDia.ForeColor = Color.Green;
}
if (keyValuePair.Name == "无创收缩压")
{
ssy = value <= 0 ? "" : value.ToString();
//if (iswar == true) lblDia.ForeColor = Color.Red; else lblDia.ForeColor = Color.Green;
}
if (keyValuePair.Name == "有创舒张压")
{
szy = value <= 0 ? "" : value.ToString();
//if (iswar == true) lblDia.ForeColor = Color.Red; else lblDia.ForeColor = Color.Green;
}
if (keyValuePair.Name == "有创收缩压")
{
ssy = value <= 0 ? "" : value.ToString();
//if (iswar == true) lblDia.ForeColor = Color.Red; else lblDia.ForeColor = Color.Green;
}
break;
}
}
}
}
string szyssy = ssy + "/" + szy;
lblDia.Text = szyssy == "/" ? "---/---" : szyssy;
}
else
{
lblHR.Text = "--";
lblRESP.Text = "--";
lblSpo2.Text = "--";
lblPR.Text = "--";
lblDia.Text = "---/---";
lblHR.ForeColor = Color.Green;
lblRESP.ForeColor = Color.Yellow;
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);
}
}
//public ucStripMenuItem menuItem = new ucStripMenuItem();
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()
{
if (PatientId != 0)
{
templateManage.OpeRecord = BOperationRecord.getRecord(_record, PatientId, RecoverId);
templateManage.BindOperationRecordValueAll(templateManage.OpeRecord);
reDrawEvent();
templateManage.Bind();
if (_record.InstrumentList.ApplianceUseType != null && _record.InstrumentList.ApplianceUseType != "")
{
txtInstrumentNurse.Text = _record.InstrumentList.InstrumentNurse;
txtTourNurse.Text = _record.InstrumentList.TourNurse;
txtRemark.Text = _record.InstrumentList.Remark;
LoadOperationGoodsBillRecord();
}
else
{
FirstbtnEnter();
}
zgcAnaesRecord.Refresh();
}
}
private void GetPhysioDataConfig ()
{
if (_record.addPhysioList.Count == 0)
{
//加载生命体征图标
IList<PhysioDataConfig> dt = PhysioDataConfig.GetAllList();
for (int i = 0; i < dt.Count; i++)
{
PhysioDataConfig pp = dt[i];
string[] str = pp.Color.Split('.');
int A = int.Parse(str[0].ToString());
int R = int.Parse(str[1].ToString());
int G = int.Parse(str[2].ToString());
int B = int.Parse(str[3].ToString());
pp.ConveColor = System.Drawing.Color.FromArgb(A, R, G, B);
if (pp.IsDefalultShow == false || (pp.ShowImg == false && pp.ShowText == false))
{
pp.showStyle = "不显示";
pp.IsValid = false;
}
else
{
if (pp.ShowImg == true)
{
pp.showStyle = "显示曲线";
pp.IsValid = true;
}
if (pp.ShowText == true)
{
pp.showStyle = "显示数值";
pp.IsValid = true;
}
}
pp.showStyle = "显示曲线";
DateTime DateTimeNow = DateTime.Now;
bool isHave = false;
foreach (PhysioDataConfig appTemp in _record.addPhysioList)
{
if (appTemp.Name.Equals(pp.Name))
{
isHave = true;
}
}
if (!isHave)
{
_record.addPhysioList.Add(pp);
}
}
}
}
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::AIMS.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::AIMS.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::AIMS.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::AIMS.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::AIMS.Properties.Resources.;
this.picOpeBegin.BackgroundImage = global::AIMS.Properties.Resources.;
this.picOpeEnd.BackgroundImage = global::AIMS.Properties.Resources.;
this.picOutRoom.BackgroundImage = global::AIMS.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, "");
}
}
#endregion
#region
private void btnyldj_Click(object sender, EventArgs e)
{
FormUseDrugsReport formUseDrugsReport = new FormUseDrugsReport(1);
if (_record != null) formUseDrugsReport._record = _record;
formUseDrugsReport.Show();
}
private void btnzsk_Click(object sender, EventArgs e)
{
frmKnowledgeBase frm = new frmKnowledgeBase();
frm.Show();
}
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 (PublicMethod.GetHospitalName().Contains("秦皇岛"))
{
try
{
string patientId = "orcl:LDQ:5:1:0:" + _record.HISPatientId + ":" + _record.VisitTimes + "";
Process myprocess = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\APPSOFT\zlSoftCISInterface.exe", patientId);
PublicMethod.WriteLog(new Exception(@"C:\APPSOFT\zlSoftCISInterface.exe" + patientId));
myprocess.StartInfo = startInfo;
myprocess.StartInfo.UseShellExecute = false;
myprocess.Start();
}
catch (Exception ex)
{
MessageBox.Show(@"在C:\APPSOFT\zlSoftCISInterface.exe路径下找不到“zlSoftCISInterface.exe”");
}
}
}
#endregion
#region
#region
private void LoadOperationGoodsBillRecord()
{
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<ApplianceUseType>();
_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);
}
#endregion
#region
private void btnEnter_Click(object sender, EventArgs e)
{
if (_applianceUseType == null)
_applianceUseType = new List<ApplianceUseType>();
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);
//if (_appliance.Rows.Count > 60)
// MessageBox.Show("超出打印数量!");
}
}
private void FirstbtnEnter()
{
if (_applianceUseType == null)
{
_applianceUseType = new List<ApplianceUseType>();
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);
}
}
#endregion
#region
int i = 0, j = 0;
int Incount = 0;
int IncRowsount = 25;
/// <summary>
/// 加载物品控件到指定的Panel
/// </summary>
/// <param name="panel">指定的Panel</param>
/// <param name="dt">物品数据表</param>
private void FullUcControlsToPanel(Panel panel, DataTable dt)
{
i = 0; j = 0; Incount = 0;
panel.Controls.Clear();
foreach (DataRow dr in dt.Rows)
{
if (Incount >= 51)
break;
ApplianceRecord applic = null;
if (_record.InstrumentList.ApplianceRecordList != null && _record.InstrumentList.ApplianceRecordList.Count > 0)
{
foreach (ApplianceRecord app in _record.InstrumentList.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();
if (_applianceUseType != null && _applianceUseType.Count == 1 && _applianceUseType[0].Id == 1)
ApplianceNumber = "";
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 (_record.InstrumentList.ApplianceRecordList != null && _record.InstrumentList.ApplianceRecordList.Count > 0)
{
foreach (ApplianceRecord app in _record.InstrumentList.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++;
}
}
}
this.panelQXList.Height = new UCOperationGoodsBill5().Height * IncRowsount;
}
private void button1_Click(object sender, EventArgs e)
{
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) * i, (uc.Height - 1) * j);
count++;
if (_record.InstrumentList.ApplianceRecordList != null) _record.InstrumentList.ApplianceRecordList.Add(app);
panelQXList.Controls.Add(uc);
j++;
if (j == 25)
{
j = 0;
i++;
}
}
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)
{
try
{
btnSelectPatient.Focus();
_record.InstrumentList.OperationRecordId = this._record.Id;
if (_applianceUseType != null)
{
List<int> list = new List<int>();
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<string> ());
_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);
if (templateManage != null)
{
ZedGraphControl send = sender as ZedGraphControl;
templateManage.BindTempData();
}
MessageBox.Show("保存成功!", "系统提示");
}
catch (Exception ex)
{
PublicMethod.WriteLog(ex);
}
}
private void superTabMain_SelectedTabChanged(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangedEventArgs e)
{
}
/// <summary>
/// 得到当前使用的器械对象集合
/// </summary>
/// <returns></returns>
private List<ApplianceRecord> GetApplianceRecord()
{
List<ApplianceRecord> applianceRecordList = new List<ApplianceRecord>();
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)
{
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;
}
#endregion
#endregion
#region
public List<MasterPane> mPanes = new List<MasterPane>();
public List<MasterPane> UpPanes = new List<MasterPane>();
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 ex)
{
//出错处理终止打印设置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 (templateManage != null)
{
_record.InstrumentList.ApplianceRecordList = GetApplianceRecord();
_record.InstrumentList.InstrumentNurse = txtInstrumentNurse.Text;
_record.InstrumentList.TourNurse = txtTourNurse.Text;
_record.InstrumentList.Remark = txtRemark.Text;
}
mPanes = new List<MasterPane>();
UpPanes = new List<MasterPane>();
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();
}
private void PageSetting_Click(object sender, EventArgs e)
{
plPrint_Click(null, null);
}
private void PrintDocPage(object sender, PrintPageEventArgs e)
{
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 void txtTourNurse_Click(object sender, EventArgs e)
{
setDoctor(sender as TextBox, "手术室护士");
_record.InstrumentList.TourNurse = txtTourNurse.Text;
}
private void txtInstrumentNurse_Click(object sender, EventArgs e)
{
setDoctor(sender as TextBox, "手术室护士");
_record.InstrumentList.InstrumentNurse = txtInstrumentNurse.Text;
}
/// <summary>
/// 根据工作类型 选择医生术者赋值TextBox
/// </summary>
/// <param name="controlTextBox">医生术者TextBox</param>
/// <param name="workersType">工作类型</param>
public void setDoctor(TextBox controlTextBox, string workersType)
{
PublicUI.UI.frmSelectPerson frmOperationDoctor = new PublicUI.UI.frmSelectPerson();
frmOperationDoctor.PersonType = workersType;
frmOperationDoctor.SelectDepartmentName = "手术室";
frmOperationDoctor.SelectPersonData = new List<int>();
frmOperationDoctor.ShowDialog();
foreach (int RowId in frmOperationDoctor.SelectPersonData)
{
controlTextBox.Text = BPerson.GetModel(RowId).Name;
}
//if (controlTextBox.Text != "")
//{
// int idxStart = controlTextBox.Text.LastIndexOf(" ,");
// controlTextBox.Text = controlTextBox.Text.Substring(0, idxStart);
//}
}
private void button9_Click(object sender, EventArgs e)
{
TextBoxAddEventSources(panelQX, @"\");
}
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 void frmAnasRecordInstrument_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == false)
{
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();
}
if (templateManage != null)
{
_record.InstrumentList.ApplianceRecordList = GetApplianceRecord();
_record.InstrumentList.InstrumentNurse = txtInstrumentNurse.Text;
_record.InstrumentList.TourNurse = txtTourNurse.Text;
_record.InstrumentList.Remark = txtRemark.Text;
}
try
{
mPanes = new List<MasterPane>();
UpPanes = new List<MasterPane>();
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();
}
}
catch (Exception exp)
{
PublicMethod.WriteLog(exp, "");
}
}
#endregion
}
}