Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        /// <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;
            }
        }