1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Xml;
10
11 namespace XjxMobilenursing
12 {
13 public partial class frmNurseList : UserControl
14 {
15 #region 全局变量
16 private frmNurse myparentform = null; //父窗体
17 private string strtemplate = ""; //Web Service 返回的XML数据
18 private bool bolLook = true; //是否锁定
19 private ComboBox mySingleVeto;
20 private DataGridView mypopudatagridview = null;
21 private int iRowIndex = 0;
22 private string strrq1 = "";
23 private int yzlx = 0;
24 private Nurseinfo fNurseinfo = null;
25 // private Dictionary<string, DataTable> conDataitems = new Dictionary<string, DataTable>();
26 #endregion
27 public frmNurseList()
28 {
29 InitializeComponent();
30 }
31 #region 类成员GET和SET方法
32 public frmNurse OwnerParentForm
33 {
34 get
35 { return myparentform; }
36 set
37 { this.myparentform = value; }
38 }
39 public bool bLook
40 {
41 get
42 {
43 return this.bolLook;
44 }
45 set
46 {
47 this.bolLook = value;
48 }
49 }
50 public string RQ1
51 {
52 get
53 {
54 if (!StringCommon.IsDate(this.strrq1))
55 {
56 this.strrq1 = DateTime.Now.ToString("yyyy-MM-dd");
57
58 }
59 return strrq1;
60 }
61 set
62 {
63 this.strrq1 = value;
64 }
65 }
66 //public Dictionary<string, DataTable> conData
67 //{
68 // get
69 // {
70 // return conDataitems;
71 // }
72 // set { conDataitems = value; }
73 //}
74 #endregion
75 #region 重置dataGridView数据
76 public void ReflashTable()
77 {
78 try
79 {
80 if (this.NurseGridList == null) return;
81 DataTable dt = (DataTable)NurseGridList.DataSource;
82 if (dt != null)
83 {
84 dt.Rows.Clear();
85 NurseGridList.DataSource = dt;
86 }
87 }
88 catch (Exception ex)
89 {
90 MessageBox.Show(ex.Source + ":" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
91 }
92 }
93 #endregion
94 #region get护理单记录信息XML
95 public bool getNurseListInfo(string rq1, string rq2)
96 {
97 try
98 {
99 if (this.OwnerParentForm == null)
100 return false;
101 if (!StringCommon.IsDate(rq1))
102 {
103 rq1 = DateTime.Parse(this.OwnerParentForm.OwnerParentForm.CurrentPatientInfo.rysj).ToString("yyyy-MM-dd");
104 }
105 if (!StringCommon.IsDate(rq2))
106 {
107 rq2 = DateTime.Now.ToString("yyyy-MM-dd");
108 }
109 string strresult;
110 this.strtemplate = "";
111 strresult = this.OwnerParentForm.OwnerParentForm.Xjxinfoweb.GetNurseTableinfo(Properties.Settings.Default.strapplication_account,
112 this.OwnerParentForm.OwnerParentForm.CurrentPatientInfo.lsh, rq1, rq2);
113
114 if (strresult.IndexOf("error") > -1)
115 {
116 return false;
117 }
118 else if (strresult == "")
119 {
120 return false;
121 }
122 this.strtemplate = strresult;
123 return true;
124 }
125 catch (Exception ex)
126 {
127 MessageBox.Show(ex.Source + ":" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
128 return false;
129 }
130 }
131 #endregion
132 #region Set护理单信息XML到DataTable
133 private DataTable FromXML2DataTable(string XMLStr)
134 {
135 XmlDocument myDoc = new XmlDocument();
136 myDoc.LoadXml(XMLStr);
137 if (string.IsNullOrEmpty(XMLStr) || !myDoc.HasChildNodes) return null;
138 DataTable dt = new DataTable();
139 DataRow row = null;
140 DataColumn col = null;
141 //填充数据
142 foreach (XmlElement el in myDoc.SelectNodes("Nurseinfos/row"))
143 {
144 row = dt.NewRow();
145 foreach (XmlNode node in el.ChildNodes)
146 {
147 if (!dt.Columns.Contains(node.Name))
148 {
149 col = new DataColumn();
150 col.ColumnName = node.Name;
151 dt.Columns.Add(col);
152 }
153 row[node.Name] = node.InnerText;
154 }
155 dt.Rows.Add(row);
156 }
157 return dt;
158 }
159 #endregion
160 #region Set护理单信息DataTable到GridView
161 public void ShowNurseTable()
162 {
163 DataTable ds = FromXML2DataTable(this.strtemplate);
164 if (ds != null && ds.Rows.Count > 0)
165 {
166 NurseGridList.AutoGenerateColumns = false;
167 NurseGridList.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
168 NurseGridList.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
169 NurseGridList.DataSource = ds;
170 NurseGridList.ClearSelection();
171 }
172 }
173 #endregion
174 #region Set护理单GridView可编辑
175 public void SetEditNurseTable()
176 {
177 try
178 {
179 this.bLook = false;
180 this.NurseGridList.ReadOnly = this.bolLook;
181 this.NurseGridList.AllowUserToAddRows = !this.bolLook;
182 if (this.NurseGridList.RowCount <= 0) return;
183 this.NurseGridList.FirstDisplayedScrollingRowIndex = this.NurseGridList.Rows.Count - 1;
184 this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Selected = true;
185 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Cells["rqsj"];
186 this.NurseGridList.Focus();
187 this.NurseGridList.BeginEdit(false);
188 }
189 catch (Exception ex)
190 {
191 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
192 }
193 }
194 #endregion
195 #region Set护理单GridView删除
196 public void SetdelNurseTable()
197 {
198 try
199 {
200 fNurseinfo = FillNurseinfo();
201 this.yzlx = 3;
202 string requestParam = this.PkgCtrlParams(yzlx, fNurseinfo);
203 string rtn = OwnerParentForm.OwnerParentForm.Xjxinfoweb.SetNurseRequest(requestParam);
204 MessageBox.Show(rtn);
205 }
206 catch (Exception ex)
207 {
208 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
209 }
210 }
211 #endregion
212 #region 窗体初始化
213 private void frmNurseList_Load(object sender, EventArgs e)
214 {
215 try
216 {
217 this.mySingleVeto = new ComboBox();
218 this.mySingleVeto.FormattingEnabled = true;
219 this.mySingleVeto.Items.AddRange(new object[] {
220 "",
221 "True",
222 "False"});
223 this.mySingleVeto.BringToFront();
224 this.mySingleVeto.SelectedIndexChanged += new System.EventHandler(this.mySingleVeto_SelectedIndexChanged);
225 //this.mySingleVeto.Click += new System.EventHandler(this.mySingleVeto_Click);
226 this.mySingleVeto.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mySingleVeto_KeyUp);
227 this.mySingleVeto.Visible = false;
228 InitDataGridView(this.NurseGridList, "ZY_tHLDTJLD");
229 this.NurseGridList.Controls.Add(this.mySingleVeto);
230
231 mypopudatagridview = new DataGridView();
232 mypopudatagridview.Width = 200;
233 mypopudatagridview.Height = 200;
234 mypopudatagridview.AllowUserToAddRows = false;
235 mypopudatagridview.AllowUserToDeleteRows = false;
236 mypopudatagridview.AllowUserToResizeRows = false;
237 mypopudatagridview.BackgroundColor = System.Drawing.Color.White;
238 mypopudatagridview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
239 mypopudatagridview.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.mypopudatagridview_CellClick);
240 mypopudatagridview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
241 mypopudatagridview.MultiSelect = false;
242 mypopudatagridview.Name = "mypopudatagridview";
243 mypopudatagridview.ReadOnly = true;
244 mypopudatagridview.RowTemplate.Height = 23;
245 mypopudatagridview.Cursor = Cursors.Hand;
246 mypopudatagridview.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
247 mypopudatagridview.AllowUserToOrderColumns = false;
248 mypopudatagridview.RowHeadersVisible = false;
249 mypopudatagridview.Visible = false;
250 this.NurseGridList.Controls.Add(mypopudatagridview);
251 InitPopDataGridView(mypopudatagridview, "XT_TCSSZ");
252 }
253 catch (Exception ex)
254 {
255 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
256 }
257 }
258 #endregion
259 #region 主GridView初始化
260 private void InitDataGridView(DataGridView sender, string strName)
261 {
262 try
263 {
264 DataTable dt = new DataTable(strName);
265 dt.Columns.Add("jlid");
266 dt.Columns.Add("lsh");
267 dt.Columns.Add("JLR");
268 dt.Columns.Add("rqsj");
269 dt.Columns.Add("sz");
270 dt.Columns.Add("xybhd");
271 dt.Columns.Add("tk_y");
272 dt.Columns.Add("tk_z");
273 dt.Columns.Add("dgfs_y");
274 dt.Columns.Add("dgfs_z");
275 dt.Columns.Add("rl_mc");
276 dt.Columns.Add("rllx");
277 dt.Columns.Add("rl_l");
278 dt.Columns.Add("cl_mc");
279 dt.Columns.Add("cllx");
280 dt.Columns.Add("cl_l");
281 dt.Columns.Add("bbreathingmachine");
282 dt.Columns.Add("hx");
283 dt.Columns.Add("s");
284 dt.Columns.Add("f");
285 dt.Columns.Add("qm");
286 sender.DataSource = dt;
287 sender.AllowUserToOrderColumns = false;
288 sender.RowHeadersVisible = false;
289 sender.ReadOnly = this.bolLook;
290 sender.AllowUserToAddRows = !this.bolLook;
291 sender.Columns["jlid"].HeaderText = "jlid";
292 sender.Columns["jlid"].Visible = false;
293 sender.Columns["lsh"].HeaderText = "lsh";
294 sender.Columns["lsh"].Visible = false;
295 sender.Columns["JLR"].HeaderText = "JLR";
296 sender.Columns["JLR"].Visible = false;
297
298 sender.Columns["rqsj"].HeaderText = "日期";
299 sender.Columns["rqsj"].Width = 100;
300 // sender.Columns["rqsj"].ReadOnly = this.bolLook;
301 sender.Columns["rqsj"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
302
303 sender.Columns["sz"].HeaderText = "神志";
304 sender.Columns["sz"].Width = 60;
305 // sender.Columns["sz"].ReadOnly = this.bolLook;
306 sender.Columns["sz"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
307
308 sender.Columns["xybhd"].HeaderText = "血氧饱和度%";
309 sender.Columns["xybhd"].Width = 150;
310 // sender.Columns["xybhd"].ReadOnly = this.bolLook;
311 sender.Columns["xybhd"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
312
313 sender.Columns["tk_y"].HeaderText = "对光反应右";
314 sender.Columns["tk_y"].Width = 150;
315 // sender.Columns["tk_y"].ReadOnly = this.bolLook;
316 sender.Columns["tk_y"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
317
318 sender.Columns["tk_z"].HeaderText = "对光反应左";
319 sender.Columns["tk_z"].Width = 150;
320 // sender.Columns["tk_z"].ReadOnly = this.bolLook;
321 sender.Columns["tk_z"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
322
323 sender.Columns["dgfs_y"].HeaderText = "瞳孔(右)";
324 sender.Columns["dgfs_y"].Width = 100;
325 // sender.Columns["dgfs_y"].ReadOnly = this.bolLook;
326 sender.Columns["dgfs_y"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
327
328 sender.Columns["dgfs_z"].HeaderText = "瞳孔(左)";
329 sender.Columns["dgfs_z"].Width = 100;
330 // sender.Columns["dgfs_z"].ReadOnly = this.bolLook;
331 sender.Columns["dgfs_z"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
332
333 sender.Columns["rl_mc"].HeaderText = "入量名称";
334 sender.Columns["rl_mc"].Width = 150;
335 // sender.Columns["rl_mc"].ReadOnly = this.bolLook;
336 sender.Columns["rl_mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
337
338
339 sender.Columns["rllx"].HeaderText = "入量(单位)";
340 sender.Columns["rllx"].Width = 150;
341 //sender.Columns["rllx"].ReadOnly = this.bolLook;
342 sender.Columns["rllx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
343
344 sender.Columns["rl_l"].HeaderText = "入量(量)";
345 sender.Columns["rl_l"].Width = 100;
346 // sender.Columns["rl_l"].ReadOnly = this.bolLook;
347 sender.Columns["rl_l"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
348
349 sender.Columns["cl_mc"].HeaderText = " 出量名称";
350 sender.Columns["cl_mc"].Width = 150;
351 // sender.Columns["cl_mc"].ReadOnly = this.bolLook;
352 sender.Columns["cl_mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
353
354
355 sender.Columns["cllx"].HeaderText = "出量(单位)";
356 sender.Columns["cllx"].Width = 150;
357 // sender.Columns["cllx"].ReadOnly = this.bolLook;
358 sender.Columns["cllx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
359
360 sender.Columns["cl_l"].HeaderText = "出量(量)";
361 sender.Columns["cl_l"].Width = 100;
362 // sender.Columns["cl_l"].ReadOnly = this.bolLook;
363 sender.Columns["cl_l"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
364
365 sender.Columns["bbreathingmachine"].HeaderText = "呼吸机";
366 sender.Columns["bbreathingmachine"].Width = 100;
367 //sender.Columns["bbreathingmachine"].ReadOnly = this.bolLook;
368 sender.Columns["bbreathingmachine"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
369
370 sender.Columns["hx"].HeaderText = "呼吸";
371 sender.Columns["hx"].Width = 60;
372 // sender.Columns["hx"].ReadOnly = this.bolLook;
373 sender.Columns["hx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
374
375 sender.Columns["s"].HeaderText = "时";
376 sender.Columns["s"].Width = 30;
377 // sender.Columns["s"].ReadOnly = this.bolLook;
378 sender.Columns["s"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
379
380 sender.Columns["f"].HeaderText = "分";
381 sender.Columns["f"].Width = 30;
382 // sender.Columns["f"].ReadOnly = this.bolLook;
383 sender.Columns["f"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
384
385 sender.Columns["qm"].HeaderText = "记录人";
386 sender.Columns["qm"].Width = 100;
387 //sender.Columns["qm"].ReadOnly = this.bolLook;
388 sender.Columns["qm"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
389
390 sender.Tag = strName;
391 }
392 catch (Exception ex)
393 {
394 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
395 }
396
397 }
398 #endregion
399 #region 辅GridView初始化
400 private void InitPopDataGridView(DataGridView sender, string strName)
401 {
402 try
403 {
404 DataTable dt = new DataTable(strName);
405 dt.Columns.Add("id");
406 dt.Columns.Add("mc");
407 sender.DataSource = dt;
408 sender.Columns["id"].HeaderText = "序号";
409 sender.Columns["id"].Width = 60;
410 sender.Columns["id"].ReadOnly = false;
411 sender.Columns["id"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
412 sender.Columns["mc"].HeaderText = "名称";
413 sender.Columns["mc"].Width = 260;
414 sender.Columns["mc"].ReadOnly = false;
415 sender.Columns["mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
416 }
417 catch (Exception ex)
418 {
419 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
420 }
421
422
423
424 }
425 #endregion
426 #region 主GridView触发事件
427 private void NurseGridList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
428 {
429 if (this.bLook) return;
430 if (e.RowIndex < 0)
431 {
432 return;
433 }
434 if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "rl_l".ToUpper()
435 || this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
436 {
437 string str = e.FormattedValue.ToString();
438 this.NurseGridList.Rows[e.RowIndex].ErrorText = "";
439
440 if (XjxWordE.xjxformat.StringCommon.IsNumeric(str))
441 {
442 if (double.Parse(str) < 0)
443 {
444 if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
445 {
446 this.NurseGridList.Rows[e.RowIndex].ErrorText = "分值输入的必须是大于或等于0的数字,请重输";
447 }
448 else
449 {
450 this.NurseGridList.Rows[e.RowIndex].ErrorText = "数量输入的必须是大于或等于0的数字,请重输";
451 }
452
453 MessageBox.Show(this.NurseGridList.Rows[e.RowIndex].ErrorText, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
454
455 e.Cancel = true;
456 }
457 }
458 else
459 {
460 if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
461 {
462 this.NurseGridList.Rows[e.RowIndex].ErrorText = "分值输入的必须是数字类型,请重输";
463 }
464 else
465 {
466 this.NurseGridList.Rows[e.RowIndex].ErrorText = "数量输入的必须是数字类型,请重输";
467 }
468
469 MessageBox.Show(this.NurseGridList.Rows[e.RowIndex].ErrorText, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
470
471 e.Cancel = true;
472 }
473 }
474
475 }
476 private void NurseGridList_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
477 {
478 if (this.bLook) return;
479 string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
480 switch (kind)
481 {
482 case "sz":
483 case "tk_y":
484 case "tk_z":
485 case "dgfs_y":
486 case "dgfs_z":
487 case "rl_mc":
488 case "rllx":
489 case "cl_mc":
490 case "cllx":
491 TextBox mytextbox;
492 mytextbox = e.Control as TextBox;
493 mytextbox.Name = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
494 mytextbox.Tag = this.NurseGridList.CurrentCell;
495 if (mytextbox == null) return;
496 mytextbox.Click += new System.EventHandler(this.mytextbox_Click);
497 //mytextbox.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mytextbox_KeyUp);
498 break;
499 default:
500 this.mypopudatagridview.Visible = false;
501 break;
502 }
503 }
504 private void NurseGridList_CellEnter(object sender, DataGridViewCellEventArgs e)
505 {
506 if (this.bLook) return;
507 if (this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToUpper() == "bbreathingmachine".ToUpper())
508 {
509 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
510 this.mySingleVeto.Text = this.NurseGridList.CurrentCell.Value.ToString();
511 this.mySingleVeto.Left = rect.Left;
512 this.mySingleVeto.Top = rect.Top;
513 this.mySingleVeto.Width = rect.Width;
514 this.mySingleVeto.Height = rect.Height;
515 this.mySingleVeto.Tag = this.NurseGridList.CurrentCell;
516 this.mySingleVeto.Visible = true;
517 this.mySingleVeto.BringToFront();
518 this.mySingleVeto.Focus();
519 this.mypopudatagridview.Visible = false;
520 }
521 else
522 {
523 this.mySingleVeto.Visible = false;
524 }
525 }
526 private void NurseGridList_CurrentCellChanged(object sender, EventArgs e)
527 {
528 if (this.bLook) return;
529 string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
530 switch (kind)
531 {
532 case "sz":
533 case "tk_y":
534 case "tk_z":
535 case "dgfs_y":
536 case "dgfs_z":
537 case "rl_mc":
538 case "rllx":
539 case "cl_mc":
540 case "cllx":
541 if (this.mySingleVeto != null && this.mySingleVeto.Visible)
542 {
543 DataGridViewCell mycell = this.mySingleVeto.Tag as DataGridViewCell;
544 if (mycell == null) return;
545 mycell.Value = this.mySingleVeto.Text;
546 this.mySingleVeto.Visible = false;
547 this.mySingleVeto.Tag = null;
548 this.NurseGridList.BeginEdit(false);
549 }
550 if (this.mypopudatagridview != null)
551 {
552 DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
553 if ((mydatagridviewcell != null) && (this.NurseGridList.Columns[mydatagridviewcell.ColumnIndex].Name != kind))
554 {
555 this.mypopudatagridview.Visible = false;
556 iRowIndex = 0;
557 this.mypopudatagridview.Tag = null;
558 this.NurseGridList.BeginEdit(false);
559 }
560 }
561 break;
562 case "bbreathingmachine":
563 if (this.mypopudatagridview != null)
564 {
565 this.mypopudatagridview.Visible = false;
566 iRowIndex = 0;
567 this.mypopudatagridview.Tag = null;
568 this.NurseGridList.BeginEdit(false);
569 }
570 break;
571 default:
572 if (this.mySingleVeto != null && this.mySingleVeto.Visible)
573 {
574 DataGridViewCell mycell = this.mySingleVeto.Tag as DataGridViewCell;
575 if (mycell == null) return;
576 mycell.Value = this.mySingleVeto.Text;
577 this.mySingleVeto.Visible = false;
578 this.mySingleVeto.Tag = null;
579 this.NurseGridList.BeginEdit(false);
580 }
581 if (this.mypopudatagridview != null)
582 {
583 DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
584 this.mypopudatagridview.Visible = false;
585 iRowIndex = 0;
586 this.mypopudatagridview.Tag = null;
587 this.NurseGridList.BeginEdit(false);
588 }
589 break;
590 }
591 }
592 private void NurseGridList_CellClick(object sender, DataGridViewCellEventArgs e)
593 {
594 if (this.bLook) return;
595 if (this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToUpper() == "rqsj".ToUpper())
596 {
597 SelectDatetime();
598 }
599 }
600 private void NurseGridList_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
601 {
602 if (this.bLook) return;
603 if (this.mySingleVeto == null) return;
604 this.mySingleVeto.Visible = false;
605 }
606 private void NurseGridList_Scroll(object sender, ScrollEventArgs e)
607 {
608 if (this.bLook) return;
609 if (this.mySingleVeto == null) return;
610 this.mySingleVeto.Visible = false;
611 }
612 private void NurseGridList_RowLeave(object sender, DataGridViewCellEventArgs e)
613 {
614 fNurseinfo = FillNurseinfo();
615 string requestParam = this.PkgCtrlParams(yzlx, fNurseinfo);
616 string rtn = OwnerParentForm.OwnerParentForm.Xjxinfoweb.SetNurseRequest(requestParam);
617 // MessageBox.Show(rtn);
618 }
619 #endregion
620 #region 日期选择事件
621 public void SelectDatetime()
622 {
623 using (frmSelectsingleDate myfrm = new frmSelectsingleDate())
624 {
625 myfrm.RQ1 = this.RQ1;
626 if (myfrm.ShowDialog() == DialogResult.OK)
627 {
628 this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex].Value = myfrm.RQ1;
629 this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells["s"].Value = DateTime.Now.Hour.ToString();
630 this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells["f"].Value = DateTime.Now.Minute.ToString();
631 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex + 1];
632 this.NurseGridList.Focus();
633 this.NurseGridList.BeginEdit(false);
634 }
635 }
636 }
637 #endregion
638 #region 获取控件数据小窗口grid
639 private void mytextbox_KeyUp(object sender, KeyEventArgs e)
640 {
641 string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
642 if ((kind != "sz") && (kind != "tk_y") && (kind != "tk_z") && (kind != "dgfs_y") && (kind != "dgfs_z") && (kind != "rl_mc") && (kind != "rllx") && (kind != "cl_mc") && (kind != "cllx"))
643 {
644 e.Handled = true;
645 return;
646 }
647 switch (e.KeyCode)
648 {
649 case Keys.Down:
650 if (this.mypopudatagridview.Rows.Count < 0) return;
651 iRowIndex++;
652 if (iRowIndex >= this.mypopudatagridview.Rows.Count) iRowIndex = this.mypopudatagridview.Rows.Count - 1;
653 setSelectRowValue(iRowIndex);
654 e.Handled = true;
655 break;
656 case Keys.Up:
657 if (this.mypopudatagridview.Rows.Count < 0) return;
658 iRowIndex--;
659 if (iRowIndex < 0) iRowIndex = 0;
660 setSelectRowValue(iRowIndex);
661 e.Handled = true;
662 break;
663 case Keys.Enter:
664 if (this.mypopudatagridview.Visible && this.mypopudatagridview.Rows.Count > 0)
665 {
666 setSelectRowValue(iRowIndex);
667 }
668 System.Windows.Forms.SendKeys.Send("{TAB}");
669 e.Handled = true;
670 break;
671 }
672
673 if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) return;
674
675 if (!this.mypopudatagridview.Visible)
676 {
677 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
678 this.mypopudatagridview.Visible = true;
679
680 this.mypopudatagridview.Left = rect.Left;
681 if (rect.Top + this.mypopudatagridview.Height > this.NurseGridList.Height)
682 {
683 this.mypopudatagridview.Top = rect.Top - this.mypopudatagridview.Height;
684 }
685 else
686 {
687 this.mypopudatagridview.Top = rect.Top + rect.Height;
688 }
689 this.mypopudatagridview.Tag = this.NurseGridList.CurrentCell;
690 this.mypopudatagridview.Visible = true;
691 }
692 if (this.mypopudatagridview.Visible)
693 {
694 TextBox mytextbox = sender as TextBox;
695 string tbName = mytextbox.Name;
696 if (mytextbox == null) return;
697 if (this.NurseGridList.Columns[Name].Tag != null && this.NurseGridList.Columns[Name].Tag is DataTable)
698 {
699 this.mypopudatagridview.DataSource = this.NurseGridList.Columns[Name].Tag;
700 }
701 else
702 {
703 this.writePopDataGridView(tbName);
704 }
705 }
706 }
707 private void mytextbox_Click(object sender, EventArgs e)
708 {
709 string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
710 if ((kind != "sz") && (kind != "tk_y") && (kind != "tk_z") && (kind != "dgfs_y") && (kind != "dgfs_z") && (kind != "rl_mc") && (kind != "rllx") && (kind != "cl_mc") && (kind != "cllx"))
711 {
712 return;
713 }
714 if (!this.mypopudatagridview.Visible)
715 {
716 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
717 this.mypopudatagridview.Visible = true;
718
719 this.mypopudatagridview.Left = rect.Left;
720 if (rect.Top + this.mypopudatagridview.Height > this.NurseGridList.Height)
721 {
722 this.mypopudatagridview.Top = rect.Top - this.mypopudatagridview.Height;
723 }
724 else
725 {
726 this.mypopudatagridview.Top = rect.Top + rect.Height;
727 }
728 this.mypopudatagridview.Tag = this.NurseGridList.CurrentCell;
729 this.mypopudatagridview.Visible = true;
730 }
731 if (this.mypopudatagridview.Visible)
732 {
733 TextBox mytextbox = sender as TextBox;
734 string tbName = mytextbox.Name;
735 if (mytextbox == null) return;
736 //if (this.conDataitems != null && this.conDataitems.Count > 0 && this.conDataitems.ContainsKey(tbName))
737 //{
738 // DataTable dt = this.conDataitems[tbName] as DataTable;
739 // this.mypopudatagridview.DataSource = dt;
740 //}
741 //else
742 //{
743 // this.writePopDataGridView(tbName);
744 //}
745 if (this.NurseGridList.Columns[kind].Tag != null && this.NurseGridList.Columns[kind].Tag is DataTable)
746 {
747 this.mypopudatagridview.DataSource = this.NurseGridList.Columns[kind].Tag;
748 }
749 else
750 {
751 this.writePopDataGridView(kind);
752 }
753 }
754
755 }
756 private void mypopudatagridview_CellClick(object sender, DataGridViewCellEventArgs e)
757 {
758 if (e.RowIndex < 0) return;
759 iRowIndex = e.RowIndex;
760 setSelectRowValue(iRowIndex);
761 DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
762 DataGridViewCell mycell = this.mypopudatagridview.Tag as DataGridViewCell;
763 if (mydatagridviewcell != null)
764 {
765 this.NurseGridList.FirstDisplayedScrollingRowIndex = this.NurseGridList.Rows.Count - 1;
766 this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Selected = true;
767 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[mycell.RowIndex].Cells[mycell.ColumnIndex + 1];
768 this.NurseGridList.Focus();
769 this.NurseGridList.BeginEdit(false);
770 }
771 this.mypopudatagridview.Visible = false;
772 this.mypopudatagridview.Tag = null;
773 iRowIndex = 0;
774 }
775 public void writePopDataGridView(string Name)
776 {
777 //if (this.mypopudatagridview.RowCount > 0) ((DataTable)this.mypopudatagridview.DataSource).Clear();
778 XmlDocument myDoc = new XmlDocument();
779 string respStr = string.Empty;
780 respStr = this.OwnerParentForm.OwnerParentForm.Xjxinfoweb.GetNurseTabinfo(Name, string.Empty);
781 if (string.IsNullOrEmpty(respStr) || respStr.IndexOf("error") > -1)
782 {
783 MessageBox.Show(respStr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
784 return;
785 }
786 myDoc.LoadXml(respStr);
787 DataTable dt = new DataTable();
788 DataRow row = null;
789 DataColumn col = null;
790 foreach (XmlElement el in myDoc.SelectNodes("patientinfos/patientinfo"))
791 {
792 row = dt.NewRow();
793 foreach (XmlNode node in el.ChildNodes)
794 {
795 if (!dt.Columns.Contains(node.Name))
796 {
797 col = new DataColumn();
798 col.ColumnName = node.Name;
799 dt.Columns.Add(col);
800 }
801 row[node.Name] = node.InnerText;
802 }
803 dt.Rows.Add(row);
804 }
805 this.mypopudatagridview.DataSource = dt;
806 //if (!this.conDataitems.ContainsKey(Name.ToString()))
807 //{
808 // this.conDataitems.Add(Name, dt);
809 //}
810 this.NurseGridList.Columns[Name].Tag = dt;
811 }
812 private void setSelectRowValue(int rowindex)
813 {
814 if (this.mypopudatagridview.Rows.Count < 0) return;
815 if (rowindex < 0 || rowindex > this.mypopudatagridview.Rows.Count) return;
816 this.mypopudatagridview.FirstDisplayedScrollingRowIndex = rowindex;
817 this.mypopudatagridview.Rows[rowindex].Selected = true;
818 this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex].Value = this.mypopudatagridview.Rows[rowindex].Cells["mc"].Value.ToString();
819 }
820 #endregion
821 #region 获取Combox
822 private void mySingleVeto_SelectedIndexChanged(object sender, EventArgs e)
823 {
824 return;
825 }
826 private void mySingleVeto_KeyUp(object sender, KeyEventArgs e)
827 {
828 int index = mySingleVeto.SelectedIndex;
829 switch (e.KeyCode)
830 {
831 case Keys.Up:
832 index--;
833 if (index < 0) index = 0;
834 mySingleVeto.SelectedIndex = index;
835 e.Handled = true;
836 break;
837 case Keys.Down:
838 index++;
839 if (index >= this.mySingleVeto.Items.Count) index = this.mySingleVeto.Items.Count - 1;
840 this.mySingleVeto.SelectedIndex = index;
841 e.Handled = true;
842 break;
843 case Keys.Enter:
844 DataGridViewCell mycell = this.Tag as DataGridViewCell;
845 if (mycell == null) return;
846 mycell.Value = this.mySingleVeto.Text;
847 this.NurseGridList.FirstDisplayedScrollingRowIndex = mycell.RowIndex;
848 this.NurseGridList.Rows[mycell.RowIndex].Selected = true;
849 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[mycell.RowIndex].Cells[mycell.ColumnIndex + 1];
850 this.NurseGridList.Focus();
851 this.NurseGridList.BeginEdit(false);
852 e.Handled = true;
853 break;
854 }
855 }
856 #endregion
857 #region 获取记录
858 private Nurseinfo FillNurseinfo()
859 {
860 DataGridViewRow selectedRow = NurseGridList.CurrentRow;
861 if (selectedRow == null)
862 {
863 MessageBox.Show("请选中记录", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning);
864 return null;
865 }
866 Nurseinfo myNurseinfo = new Nurseinfo();
867 if (selectedRow.Cells["jlid"].Value + "" == "")
868 {
869 this.yzlx = 1;
870 myNurseinfo.jlid = "0";
871 }
872 else
873 {
874 this.yzlx = 2;
875 myNurseinfo.jlid = selectedRow.Cells["jlid"].Value + "";
876 }
877
878 myNurseinfo.lsh = selectedRow.Cells["lsh"].Value + "";
879 myNurseinfo.jlr = selectedRow.Cells["jlr"].Value + "";
880 myNurseinfo.rqsj = selectedRow.Cells["rqsj"].Value + "";
881 myNurseinfo.s = selectedRow.Cells["s"].Value + "";
882 myNurseinfo.f = selectedRow.Cells["f"].Value + "";
883 myNurseinfo.bbreathingmachine = selectedRow.Cells["bbreathingmachine"].Value + "";
884 myNurseinfo.hx = selectedRow.Cells["hx"].Value + "";
885 myNurseinfo.sz = selectedRow.Cells["sz"].Value + "";
886 myNurseinfo.s = selectedRow.Cells["s"].Value + "";
887 myNurseinfo.xybhd = selectedRow.Cells["xybhd"].Value + "";
888 myNurseinfo.dgfs_z = selectedRow.Cells["dgfs_y"].Value + "";
889 myNurseinfo.tk_z = selectedRow.Cells["tk_z"].Value + "";
890 myNurseinfo.tk_y = selectedRow.Cells["tk_y"].Value + "";
891 myNurseinfo.rl_mc = selectedRow.Cells["rl_mc"].Value + "";
892 myNurseinfo.rllx = selectedRow.Cells["rllx"].Value + "";
893 myNurseinfo.rl_l = selectedRow.Cells["rl_l"].Value + "";
894 myNurseinfo.cl_mc = selectedRow.Cells["cl_mc"].Value + "";
895 myNurseinfo.cllx = selectedRow.Cells["cl_l"].Value + "";
896 return myNurseinfo;
897 }
898 #endregion
899 #region 界面数据打包XML
900 private string PkgCtrlParams(int opKind, Nurseinfo oNurseinfo)
901 {
902 Patientinfo myCurrentPatientinfo = OwnerParentForm.OwnerParentForm.CurrentPatientInfo;
903 if (myCurrentPatientinfo == null || (opKind != 1 && opKind != 2 && opKind != 3)) return string.Empty;
904 XmlDocument myDoc = new XmlDocument();
905 XmlElement root = myDoc.CreateElement("params");
906 myDoc.AppendChild(root);
907 try
908 {
909 AppendToXml(root, "jlid", oNurseinfo.jlid);//*主键
910 AppendToXml(root, "lsh", myCurrentPatientinfo.lsh == 0 ? "" : myCurrentPatientinfo.lsh.ToString());//*患者ID
911 AppendToXml(root, "czzt", opKind.ToString());//*执行保存操作;1:增,2:改,3:删
912 AppendToXml(root, "jlr", Properties.Settings.Default.iapplication_yhid.ToString());//*操作员ID
913 }
914 catch (Exception e)
915 {
916 MessageBox.Show(this, e.Message, "出错提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
917 return string.Empty;
918 }
919 if ((opKind == 1) || (opKind == 2))
920 {
921 AppendToXml(root, "rqsj", oNurseinfo.rqsj); //*护理时间
922 AppendToXml(root, "s", oNurseinfo.s); //护理时
923 AppendToXml(root, "f", oNurseinfo.f); //护理分
924 AppendToXml(root, "bbreathingmachine", true? "1" : "0");//*呼吸机
925 AppendToXml(root, "hx", oNurseinfo.hx); //*呼吸机速率
926 AppendToXml(root, "sz", oNurseinfo.sz); //神志
927 AppendToXml(root, "xybhd", oNurseinfo.xybhd); //血氧饱和度
928 AppendToXml(root, "dgfs_z", oNurseinfo.dgfs_z); //对光反应左
929 AppendToXml(root, "dgfs_y", oNurseinfo.dgfs_y); //对光反应右
930 AppendToXml(root, "tk_z", oNurseinfo.tk_z); //瞳孔(左)
931 AppendToXml(root, "tk_y", oNurseinfo.tk_y); //瞳孔(右)
932 AppendToXml(root, "rl_mc ", oNurseinfo.rl_mc); //入量名称
933 AppendToXml(root, "rllx", oNurseinfo.rllx); //入量(单位)
934 AppendToXml(root, "rl_l", oNurseinfo.rl_l); //入量(量)
935 AppendToXml(root, "cl_mc", oNurseinfo.cl_mc); //出量名称
936 AppendToXml(root, "cllx", oNurseinfo.cllx); //出量(单位)
937 AppendToXml(root, "cl_l", oNurseinfo.cl_l); //出量(量)
938 AppendToXml(root, "jlsj", oNurseinfo.rqsj); //*记录护理时间
939
940 }
941 return myDoc.OuterXml;
942 }
943 private void AppendToXml(XmlElement root, string name, string text)
944 {
945 if (string.IsNullOrEmpty(text)) return;
946 XMLCommon.CreateChildElement(root, name, true, text);
947 }
948 #endregion
949 }
950 }