using AIMSBLL; using AIMSExtension; using DrawGraph; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace AIMS.PublicUI.UI { public partial class frmAanesthesiaQuality : Form { /// /// 手术记录 /// public DrawGraph.OperationRecord _record; /// /// 质控集合 /// private List _adverseEventList; /// /// 不良事件集合 /// private List _adverseEventListBlsj; /// /// 构造函数 /// public frmAanesthesiaQuality() { InitializeComponent(); _adverseEventList = new List(); _adverseEventListBlsj = new List(); } /// /// 窗体加载质控 /// /// /// private void frmAnaseDataQualityRecord_Load(object sender, EventArgs e) { Initial(); } /// /// 初始化质控 /// private void Initial() { //得到质控数据 _adverseEventList = BAdverseEvent.SelectAll("质控指标"); _adverseEventListBlsj = BAdverseEvent.SelectAll2("质控指标"); var rList = _record.AnaseDataQualityRecordList.Where(p => p.AdverseEvenLevel.Equals("质控指标")).Select(p => p); bool isNotChecked = false; if (_record.AnaseDataQualityRecordList == null) _record.AnaseDataQualityRecordList = new List(); if (_record.AnaseDataQualityRecordList.Count > 0) { isNotChecked = true; } FullPanel(panelExZKZB, _adverseEventList, rList.ToList(), isNotChecked); var rListBLSJ = _record.AnaseDataQualityRecordList.Where(p => p.AdverseEvenLevel != "质控指标").Select(p => p); if (_record.AnaseDataQualityRecordList == null) _record.AnaseDataQualityRecordList = new List(); if (_record.AnaseDataQualityRecordList.Count > 0) { checkBox1.Checked = true; } FullPanelBLSJ(panelExBLSJ, _adverseEventListBlsj, rListBLSJ.ToList(), isNotChecked); } /// /// 加载相应的不良质控控件(同时赋值) /// /// /// /// private void FullPanel(Panel panel, List list, List rList, bool isNotChecked) { panel.Controls.Clear(); int rows = 0; int cols = 0; int x = 0; //循环加载CheckBox控件 foreach (AdverseEvent ade in list) { x = cols * 400 + 50; System.Windows.Forms.Label txtName = new System.Windows.Forms.Label(); txtName.Text = ade.Name; txtName.Font = new System.Drawing.Font("微软雅黑", 10.5f); txtName.Width = 300; txtName.Tag = ade; txtName.Location = new Point(x, rows * (txtName.Height + 3) + 17); panel.Controls.Add(txtName); CheckBox chkNo = new CheckBox(); chkNo.AutoSize = true; chkNo.Location = new System.Drawing.Point(46, 1); chkNo.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); chkNo.Size = new System.Drawing.Size(36, 16); chkNo.Text = "否"; chkNo.UseVisualStyleBackColor = true; chkNo.Tag = ade; CheckBox chkYes = new CheckBox(); chkYes.AutoSize = true; chkYes.Location = new System.Drawing.Point(4, 1); chkYes.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); chkYes.Size = new System.Drawing.Size(36, 16); chkYes.Text = "是"; chkYes.UseVisualStyleBackColor = true; chkYes.Tag = ade; //为控件的Checked属性赋值 foreach (AnaseDataQualityRecord r in rList) { if (r.AdverseEventId == ade.Id) { chkYes.Checked = true; break; } } if (isNotChecked == true) { if (chkYes.Checked == true) chkNo.Checked = false; else chkNo.Checked = true; } //给CheckBox控件生成CheckedChanged质控chkYes_CheckedChanged chkYes.CheckedChanged += new EventHandler(cb_CheckedChanged); //给CheckBox控件生成CheckedChanged质控chkNo_CheckedChanged chkNo.CheckedChanged += new EventHandler(cb_CheckedChanged); Panel panelChk = new System.Windows.Forms.Panel(); panelChk.Controls.Add(chkYes); panelChk.Controls.Add(chkNo); panelChk.Location = new Point(x + 300, rows * (txtName.Height + 3) + 20); panelChk.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); panelChk.Size = new System.Drawing.Size(94, 26); panel.Controls.Add(panelChk); //如果已加载15行,则另起一列,最多显示3列 rows++; if (rows == 22) { rows = 0; cols++; if (cols == 2) { return; } } } } /// /// 加载相应的不良事件控件(同时赋值) /// /// /// /// private void FullPanelBLSJ(Panel panel, List list, List rList, bool isNotChecked) { panel.Controls.Clear(); int rows = 0; int cols = 0; int x = 0; //循环加载CheckBox控件 foreach (AdverseEvent ade in list) { x = cols * 400 + 20; System.Windows.Forms.Label txtName = new System.Windows.Forms.Label(); txtName.Text = ade.Name; txtName.Font = new System.Drawing.Font("微软雅黑", 10.5f); txtName.Width = 300; txtName.Tag = ade; txtName.Location = new Point(x, rows * (txtName.Height + 3) + 17); panel.Controls.Add(txtName); CheckBox chkNo = new CheckBox(); chkNo.AutoSize = true; chkNo.Location = new System.Drawing.Point(46, 1); chkNo.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); chkNo.Size = new System.Drawing.Size(36, 16); chkNo.Text = "否"; chkNo.UseVisualStyleBackColor = true; chkNo.Tag = ade; CheckBox chkYes = new CheckBox(); chkYes.AutoSize = true; chkYes.Location = new System.Drawing.Point(4, 1); chkYes.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); chkYes.Size = new System.Drawing.Size(36, 16); chkYes.Text = "是"; chkYes.UseVisualStyleBackColor = true; chkYes.Tag = ade; //为控件的Checked属性赋值 foreach (AnaseDataQualityRecord r in rList) { if (r.AdverseEventId == ade.Id) { chkYes.Checked = true; checkBox1.Checked = false; break; } } if (isNotChecked == true) { if (chkYes.Checked == true) chkNo.Checked = false; else chkNo.Checked = true; } //给CheckBox控件生成CheckedChanged质控chkYes_CheckedChanged chkYes.CheckedChanged += new EventHandler(cb_CheckedChanged); //给CheckBox控件生成CheckedChanged质控chkNo_CheckedChanged chkNo.CheckedChanged += new EventHandler(cb_CheckedChanged); Panel panelChk = new System.Windows.Forms.Panel(); panelChk.Controls.Add(chkYes); panelChk.Controls.Add(chkNo); panelChk.Location = new Point(x + 300, rows * (txtName.Height + 3) + 20); panelChk.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); panelChk.Size = new System.Drawing.Size(94, 26); panel.Controls.Add(panelChk); //如果已加载15行,则另起一列,最多显示3列 rows++; if (rows == 20) { rows = 0; cols++; if (cols == 2) { return; } } } } /// /// CheckBox控件CheckedChanged质控 /// /// /// void cb_CheckedChanged(object sender, EventArgs e) { CheckBox ck = sender as CheckBox; //判断CheckBox被选中时 if (ck.Checked) { if (ck.Text == "是") { bool k = false; //察看患者的不良质控记录是否存在 foreach (AnaseDataQualityRecord aerd in _record.AnaseDataQualityRecordList) { if ((ck.Tag as AdverseEvent).Id == aerd.AdverseEventId) { k = true; break; } } //如果不存在则添加 if (!k) { AnaseDataQualityRecord aer = new AnaseDataQualityRecord(); aer.OperationRecordId = this._record.Id; aer.AdverseEventId = (ck.Tag as AdverseEvent).Id; aer.AdverseEvenName = (ck.Tag as AdverseEvent).Name; aer.AdverseEvenLevel = (ck.Tag as AdverseEvent).Level; aer.OperatorId = AIMSExtension.PublicMethod.OperatorId; aer.OpeatorTime = DateTime.Now; _record.AnaseDataQualityRecordList.Add(aer); } } else { //CheckBox取消选中时,判断患者不良质控集合是否存在,如果存在则移除 foreach (AnaseDataQualityRecord aerd in _record.AnaseDataQualityRecordList) { if (aerd.AdverseEventId == (ck.Tag as AdverseEvent).Id) { _record.AnaseDataQualityRecordList.Remove(aerd); break; } } } } else { //CheckBox取消选中时,判断患者不良质控集合是否存在,如果存在则移除 foreach (AnaseDataQualityRecord aerd in _record.AnaseDataQualityRecordList) { if (aerd.AdverseEventId == (ck.Tag as AdverseEvent).Id && ck.Text == "是") { _record.AnaseDataQualityRecordList.Remove(aerd); break; } } } foreach (var item in ck.Parent.Controls) { if (item is CheckBox && ck.Checked == true && ((CheckBox)item).Text != ck.Text) { ((CheckBox)item).Checked = false; } } } /// /// 退出质控 /// /// /// private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } /// /// 保存质控 /// /// /// private void btnSave_Click(object sender, EventArgs e) { bool isNotChecked = false; foreach (var item in panelExZKZB.Controls) { if (item is Panel) { bool isChecked = false; foreach (var ck in ((Panel)item).Controls) { if (ck is CheckBox && ((CheckBox)ck).Checked == true) { isChecked = true; } } if (isChecked == false) isNotChecked = true; } } if (isNotChecked == true) { MessageBox.Show("请选择质控指标?!"); return; } //if (checkBox1.Checked == false) //{ // isNotChecked = false; // foreach (var item in panelExBLSJ.Controls) // { // if (item is Panel) // { // bool isChecked = false; // foreach (var ck in ((Panel)item).Controls) // { // if (ck is CheckBox && ((CheckBox)ck).Checked == true) // { // isChecked = true; // } // } // if (isChecked == false) // isNotChecked = true; // } // } // if (isNotChecked == true) // { // MessageBox.Show("请选择不良事件?!"); // return; // } //} if (_record.AnaseDataQualityRecordList.Count == 0) { AnaseDataQualityRecord aerd = new AnaseDataQualityRecord(); aerd.AdverseEvenLevel = "无"; aerd.OperationRecordId = _record.Id; aerd.OperatorId = AIMSExtension.PublicMethod.OperatorId; aerd.OpeatorTime = DateTime.Now; _record.AnaseDataQualityRecordList.Clear(); _record.AnaseDataQualityRecordList.Add(aerd); } else if (_record.AnaseDataQualityRecordList.Count > 1) { foreach (AnaseDataQualityRecord aerd in _record.AnaseDataQualityRecordList) { if (aerd.AdverseEvenLevel == "无") { _record.AnaseDataQualityRecordList.Remove(aerd); break; } } } BAnaseDataQualityRecord.UpdateAnaseDataQualityRecord(_record.AnaseDataQualityRecordList, Convert.ToInt32(_record.Id)); new frmMessageBox().Show(); this.Close(); } public void SetDefultNo() { foreach (var item in panelExZKZB.Controls) { if (item is Panel) { foreach (var ck in ((Panel)item).Controls) { if (ck is CheckBox) { AdverseEvent ade = (AdverseEvent)(((CheckBox)ck).Tag); if (ade.Remark == "是" || ade.Remark == "1") { if (((CheckBox)ck).Text == "否") { ((CheckBox)ck).Checked = false; } if (((CheckBox)ck).Text == "是") { ((CheckBox)ck).Checked = true; } } else { if (((CheckBox)ck).Text == "否") { ((CheckBox)ck).Checked = true; } if (((CheckBox)ck).Text == "是") { ((CheckBox)ck).Checked = false; } } } } } } } private void btndefault_Click(object sender, EventArgs e) { SetDefultNo(); checkBox1.Checked = true; } } }