/// <summary> /// 设置复选框列表 /// </summary> public void SetCheckBoxList() { try { //SetPreViewVisible(false); DataTable dt = GetEmrRecord(m_CurrentInpatient.NoOfFirstPage.ToString(), ChangeID); if (CheckIfNeedRefresh(dt, CurrentUCEmrInputBody.CurrentTreeList.FocusedNode)) { if (MyMessageBox.Show("数据库中病历有更新,建议您刷新后预览。您是否要刷新病程记录?", "提示", MyMessageBoxButtons.YesNo, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.QuestionIcon) == DialogResult.Yes) { TreeListNode focusedNode = CurrentUCEmrInputBody.CurrentTreeList.FocusedNode; if (null != focusedNode && null != focusedNode.Tag && focusedNode.Tag is EmrModel) { EmrModel model = focusedNode.Tag as EmrModel; m_App.CurrentSelectedEmrID = model.InstanceId.ToString(); } CurrentUCEmrInputBody.RefreshBingChengJiLu(); } } m_WaitDialog = new WaitDialogForm("正在加载病程预览区...", "请稍候"); SetCheckBoxListSource(dt); DefaultCheckItem(); XmlDocument doc = ConcatCheckedEmrContent(); SetEmrContent(doc); SetPreViewVisible(true); CurrentEditorForm.SetCurrentElement(FirstCallRecordDetailCaptionDateTime); DS_Common.HideWaitDialog(m_WaitDialog); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void btnItemOpenForEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { string msg = CurrentEditorForm.LocateDailyEmrByCursor(); GetParentUserControl().OnLocateDailyEmrForEdit(ChangeID, msg); UCEmrInputPreView preView = Util.GetParentUserControl <UCEmrInputPreView>(this); //打开指定的病程后重新控制病程预览区的高度 if (preView.Height > FirstHeight) { preView.Height = FirstHeight; preView.ButtonRestore.Enabled = false; preView.ButtonUp.Enabled = true; preView.ButtonDown.Enabled = true; } this.CurrentEditorForm.SetCurrentElement(msg); } catch (Exception ex) { DrectSoft.Common.Ctrs.DLG.MyMessageBox.Show(1, ex); } }
/// <summary> /// 编辑器中的病历保存之后对病程预览区的影响 /// 如果是新增:直接在预览区左侧的列表中增加此节点,但是不勾中,预览区中显示的病程内容不发生改变 /// 如果是修改:在预览区左侧的列表中判断此病历有无勾中,如果勾中则重新捞取此病历的内容,并重新显示在预览区中 /// </summary> public void AfterSaveEmr(string recorddetailID, string displayDateTime) { try { //获取recorddetail.ID == recorddetailID的病历 var listBoxItem = checkedListBoxControlEmrNode.Items.Cast <CheckedListBoxItem>().Where(item => { EmrNode emrNode = item.Value as EmrNode; if (emrNode != null && emrNode.ID == recorddetailID) { return(true); } return(false); }).FirstOrDefault <CheckedListBoxItem>(); if (listBoxItem == null) { #region 新增树节点 DataTable dtRecord = GetEmrRecordByID(recorddetailID); if (dtRecord.Rows.Count > 0) { EmrNode emrNode = new EmrNode(dtRecord.Rows[0]); int insertIndex = 0; if (checkedListBoxControlEmrNode.Items.Count > 0) { //计算比上面获取病历的captiondatetime小的病历记录数目 int cnt = checkedListBoxControlEmrNode.Items.Cast <ListBoxItem>().Count(item => { EmrNode node = item.Value as EmrNode; if (emrNode != null && (Convert.ToDateTime(emrNode.DataRowItem["captiondatetime"]) - Convert.ToDateTime(node.DataRowItem["captiondatetime"])).TotalSeconds > 0) { return(true); } return(false); }); insertIndex += cnt; } //在指定的位置插入树节点 CheckedListBoxItem checkedListBoxItem = new CheckedListBoxItem(emrNode, true); checkedListBoxControlEmrNode.Items.Insert(insertIndex, checkedListBoxItem); Point scrollPosition = CurrentEditorForm.CurrentEditorControl.AutoScrollPosition; RefreshEmrContent(); CurrentEditorForm.CurrentEditorControl.SetAutoScrollPosition(new Point(scrollPosition.X, -scrollPosition.Y)); } #endregion } else { #region 修改树节点,并重新刷数据 DataTable dtRecord = GetEmrRecordByID(recorddetailID); if (dtRecord.Rows.Count > 0) { EmrNode node = listBoxItem.Value as EmrNode; node.DataRowItem.ItemArray = dtRecord.Rows[0].ItemArray; node.Name = node.DataRowItem["name"].ToString(); bool isSorted = SortTreeNodeInList();//对节点进行排序 if (listBoxItem.CheckState == CheckState.Checked) { Point scrollPosition = CurrentEditorForm.CurrentEditorControl.AutoScrollPosition; RefreshEmrContent(); if (!isSorted) {//如果没有进行排序,则需要定位原先的Scroll的位置 CurrentEditorForm.CurrentEditorControl.SetAutoScrollPosition(new Point(scrollPosition.X, -scrollPosition.Y)); } else { CurrentEditorForm.SetCurrentElement(displayDateTime); } } } #endregion } } catch (Exception) { throw; } }