using DrawGraph;
using DrawGraph.AreaManage;
using DrawGraph.BoardPack;
using DrawGraph.GUtil;
using Newtonsoft.Json;
using PublicBusi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace AIMS.EF
{
[Serializable, JsonObject(MemberSerialization.OptOut)]
public class BaseInfoBottomManage : AreaManageBase
{
private OperationRecord myOpeRecord = null;
public BaseInfoBottomManage() { }
public BaseInfoBottomManage(object _operationRecor, ZedGraphControl _zedControl, TemplateManage _template, string _name) : base(_operationRecor, _zedControl, _template, _name)
{
init();
}
public void init()
{
//自己要用的手术对象
myOpeRecord = OpeRecord as OperationRecord;
}
#region 重写的事件
///
/// 鼠标点击画板
///
///
///
public override void MouseDown(ZedGraphControl sender, MouseEventArgs e)
{
//if (e.Button == System.Windows.Forms.MouseButtons.Left)
//{
// MessageBox.Show(this.GetType().Name + "is Click Left Button");
//}
}
public override void MouseMove(ZedGraphControl sender, MouseEventArgs e)
{
}
public override void MouseUp(ZedGraphControl sender, MouseEventArgs e)
{
}
public override void MouseDoubleClick(ZedGraphControl sender, MouseEventArgs e)
{
}
public override void KeyUp(ZedGraphControl sender, KeyEventArgs e)
{
}
public override void Bind()
{
init();
List ables = PackManage.ListPob.Where(s => s is AbleEditPackObj).ToList();
foreach (PackObjBase pack in ables)
{
AbleEditPackObj ableEdit = pack as AbleEditPackObj;
SetAbleEditView(ableEdit);
}
if (myOpeRecord.DiagnoseRemark != null && myOpeRecord.DiagnoseRemark != "")
{
string text = DocumentEntityMethod.GetDictionaryValuesById(myOpeRecord.Diagnose, "诊断");
//设置属性的值
text = text + (" (" + myOpeRecord.DiagnoseRemark + ")");
template.SetObjValue(myOpeRecord, "OperationRecord.Diagnose", text, myOpeRecord.Diagnose.ToString());
}
if (myOpeRecord.OPerationRemark != null && myOpeRecord.OPerationRemark != "")
{
string text = DocumentEntityMethod.GetDictionaryValuesById(myOpeRecord.Operation, "手术");
//设置属性的值
text = text + (" (" + myOpeRecord.OPerationRemark + ")");
template.SetObjValue(myOpeRecord, "OperationRecord.Operation", text, myOpeRecord.Operation.ToString());
}
}
///
/// 设置可编辑组件的显示样式
///
///
private void SetAbleEditView(AbleEditPackObj ableEdit)
{
string span = "";
double spanSum = Math.Round((float)(ableEdit.OneUnitCount / 12));
for (int i = 0; i < spanSum; i++)
{
span += " ";
}
string text = "", value = "";
if (ableEdit != null)
{
switch (ableEdit.ControlType)
{
case EControlType.Directory:
value = ableEdit.PackValue;
text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
//设置属性的值
template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value);
break;
default:
break;
}
}
}
#endregion 重写的事件结束
///
/// 响应可编辑区域的点击事件
///
///
///
public override void editAr_Click(object sender, EventArgs e)
{
try
{
//传过来的数据是不是可编辑的
AbleEditPackObj aEdit1S = sender as AbleEditPackObj;
if (aEdit1S == null) return;
//先把所有WINFORM组件隐藏
foreach (PackObjBase pack in PackManage.ListPob)
{
AbleEditPackObj aEdit = pack as AbleEditPackObj;
if (aEdit != null)
{
aEdit.IsVisible = false;
}
}
//这句话很重要,只操作自己管理器里的组件
AbleEditPackObj aEdit1 = PackManage.ListPob.FirstOrDefault(s => s.PackTag == aEdit1S.PackTag) as AbleEditPackObj;
//指定的组件显示
if (aEdit1 != null)
{
aEdit1.IsVisible = !aEdit1.IsVisible;
Control conl = aEdit1.CControl;
conl.Leave -= new EventHandler(txt_Leave);
//根据数据源名称进行不同的事件处理
switch (aEdit1.ClassDataSourceName)
{
case "OperationRecord.OperationAnalgesiaMode":
TYZD_Click(aEdit1, e);
break;
case "OperationRecord.AnaesthesiaMethodId":
Anaes_Click(aEdit1, e);
break;
case "OperationRecord.AnesthesiaDoctor": //麻醉医生
Worker_Click(aEdit1, e, 2);
break;
case "OperationRecord.ExtracorporealCirculation": //麻醉医生
Workerqm_Click(aEdit1, e, 2);
break;
case "OperationRecord.OperationDoctor":
Worker_Click(aEdit1, e, 0);
break;
case "OperationRecord.InstrumentNurse":
Worker_Click(aEdit1, e, 1);
break;
case "OperationRecord.Assistant1":
Worker_Click(aEdit1, e, 0);
break;
case "OperationRecord.TourNurse":
Worker_Click(aEdit1, e, 1);
break;
case "OperationRecord.Diagnose": //手术诊断
opeDisease_Click(aEdit1, e);
break;
case "OperationRecord.Operation": //手术名称
ope_Click(aEdit1, e);
break;
//default:
// //在此处写日志
// aEdit1.IsVisible = !aEdit1.IsVisible;
// MessageBox.Show("没找到-" + aEdit1.ClassDataSourceName + "-属性的事件");
// break;
}
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
#region 可编辑区域响应事件
//通用字典分组窗体打开
private void TYZD_Click(AbleEditPackObj sender, EventArgs e, bool isRadio = false)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
////默认是字典
//frmSelectDictionary fsd = new frmSelectDictionary();
//fsd._controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//fsd._dictionaryName = ableEdit.ControlTitleText;
//fsd.isRadio = isRadio;
//fsd.isAddItem = false;
//fsd.ShowDialog();
//ableEdit.PackValue = fsd._controlName.Key.ToString();
//ableEdit.PackText = fsd._controlName.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
////设置属性的值
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
}
}
catch (Exception exp)
{
}
}
private void opeDisease_Click(AbleEditPackObj sender, EventArgs e)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
//frmSelectDisease fsi = new frmSelectDisease();
//fsi._controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//fsi.txtRemark.Text = myOpeRecord.DiagnoseRemark;
//fsi.ShowDialog();
//ableEdit.PackValue = fsi._controlName.Key.ToString();
//ableEdit.PackText = fsi._controlName.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
//myOpeRecord.DiagnoseRemark = fsi.txtRemark.Text;
////设置属性的值
//if (fsi.txtRemark.Text.Trim() != "")
// text = text + (" (" + fsi.txtRemark.Text + ")");
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
//template.SetObjValue(OpeRecord, "myOpeRecord.DiagnoseRemark", fsi.txtRemark.Text, fsi.txtRemark.Text, true);
}
}
catch (Exception exp)
{
}
}
private void ope_Click(AbleEditPackObj sender, EventArgs e)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
//frmSelectOperations frmso = new frmSelectOperations();
//frmso._controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//frmso.txtRemark.Text = myOpeRecord.OPerationRemark;
//frmso.ShowDialog();
//ableEdit.PackValue = frmso._controlName.Key.ToString();
//ableEdit.PackText = frmso._controlName.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
//myOpeRecord.OPerationRemark = frmso.txtRemark.Text;
////设置属性的值
//if (frmso.txtRemark.Text.Trim() != "")
// text = text + (" (" + frmso.txtRemark.Text + ")");
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
//template.SetObjValue(OpeRecord, "myOpeRecord.OPerationRemark", frmso.txtRemark.Text, frmso.txtRemark.Text, true);
}
}
catch (Exception exp)
{
}
}
private void Worker_Click(AbleEditPackObj sender, EventArgs e, int _workersType)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
//frmSelectWorkers_New fsw = new frmSelectWorkers_New();
//fsw._controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//fsw._workersType = _workersType;
//fsw.isRadio = false;
//fsw.isAddItem = false;
//fsw.ShowDialog();
//ableEdit.PackValue = fsw._controlName.Key.ToString();
//ableEdit.PackText = fsw._controlName.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
////设置属性的值
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
}
}
catch (Exception exp)
{
}
}
private void Workerqm_Click(AbleEditPackObj sender, EventArgs e, int _workersType)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
//KeyValuePair _controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//KeyValuePair keyValuePairs = PublicToZed.SelectWorker(ableEdit.PackTag, _controlName, _workersType, PublicMethod.Operator.DepartmentId.Value, true);
//ableEdit.PackValue = keyValuePairs.Key.ToString();
//ableEdit.PackText = keyValuePairs.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
////设置属性的值
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
}
}
catch (Exception exp)
{
}
}
private void Anaes_Click(AbleEditPackObj sender, EventArgs e)
{
AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return;
try
{
if (myOpeRecord != null)
{
//frmSelectAnaesthesiaMethod fsi = new frmSelectAnaesthesiaMethod();
//fsi._controlName = new KeyValuePair(ableEdit.PackValue, ableEdit.PackText);
//fsi._formName = this.Name;
//fsi._operationRecord = myOpeRecord;
//fsi.ShowDialog();
//ableEdit.PackValue = fsi._controlName.Key.ToString();
//ableEdit.PackText = fsi._controlName.Value.ToString();
//string value = ableEdit.PackValue;
//string text = DocumentEntityMethod.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
////设置属性的值
//ableEdit.IsVisible = !ableEdit.IsVisible;
//template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value, true);
}
}
catch (Exception exp)
{
}
}
private void txt_Leave(object sender, EventArgs e)
{
Control control = (Control)sender;
if (control == null) return;
AbleEditPackObj ableEdit = control.Tag as AbleEditPackObj;
if (ableEdit == null) return;
try
{
string DataSourceName = ableEdit.ClassDataSourceName;
Console.WriteLine(DataSourceName);
//拿到数据源(格式:OperationRecord.PatientRef.Bed)
bool updateOk = true;
string text = control.Text.Trim();
string value = control.Text.Trim();
if (!updateOk)
{
ableEdit.IsVisible = !ableEdit.IsVisible;
}
else
{
if (DataSourceName == "OperationRecord.Fasting")
{
foreach (Control conl in control.Controls)
{
CheckBox chBox = conl as CheckBox;
if (chBox.Checked)
{
text = "是";
value = "1";
}
else
{
text = "否";
value = "0";
}
}
}
//设置属性的值
ableEdit.IsVisible = !ableEdit.IsVisible;
template.SetObjValue(OpeRecord, DataSourceName, text, value, true);
}
}
catch (Exception ex)
{
//写日志
}
finally
{
}
}
#endregion
}
}