Exemplo n.º 1
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                if (checkedListBoxControlEmrNode.CheckedItems.Count == 0)
                {
                    MyMessageBox.Show("没有需要导入的病历,请勾选【病历列表】中的病历。", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.WarningIcon);
                    return;
                }

                List <EmrNode> emrNodeList = new List <EmrNode>();
                foreach (ListBoxItem item in checkedListBoxControlEmrNode.CheckedItems)
                {
                    EmrNode emrNode = item.Value as EmrNode;
                    emrNodeList.Add(emrNode);
                }

                //保存选中的历史病历
                m_HistoryEmrBll.HistoryEmrBatchIn(emrNodeList, null);
                MyMessageBox.Show("历史病历导入成功", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.InformationIcon);
                this.Close();
                RefreshEMRMainPad();
                return;
            }
            catch (Exception ex)
            {
                MyMessageBox.Show(1, ex);
            }
        }
Exemplo n.º 2
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                if (checkedListBoxControlEmrNode.CheckedItems.Count == 0)
                {
                    MyMessageBox.Show("没有需要导入的病历,请勾选【病历列表】中的病历。", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.WarningIcon);
                    return;
                }
                else
                {
                    List <EmrNode> emrNodeList = new List <EmrNode>();
                    foreach (ListBoxItem item in checkedListBoxControlEmrNode.CheckedItems)
                    {
                        EmrNode emrNode = item.Value as EmrNode;
                        emrNodeList.Add(emrNode);
                    }
                    if (emrNodeList.Any(node =>
                    {
                        if (node.DataRowItem["sortid"].ToString() == "AC")
                        {
                            return(true);
                        }
                        return(false);
                    }))
                    {
                        //检查在内存中或数据库中是否存在首次病程
                        bool isHaveFirstDailyEmr = CheckIsHaveFirstDailyEmr();

                        //判断是否选择首次病程
                        if (emrNodeList.Any(node =>
                        {
                            if (node.DataRowItem["sortid"].ToString() == "AC" &&
                                node.DataRowItem["isfirstdaily"].ToString() == "1")
                            {
                                return(true);
                            }
                            return(false);
                        }))
                        {//有选择首次病程
                            if (isHaveFirstDailyEmr)
                            {
                                MyMessageBox.Show("已经存在首次病程,不能重复导入", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.WarningIcon);
                                return;
                            }
                        }
                        else
                        {//没有选择首次病程
                            if (!isHaveFirstDailyEmr)
                            {
                                MyMessageBox.Show("导入病程时同时需要导入首次病程,请选择", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.WarningIcon);
                                return;
                            }
                        }

                        int dayCnt = 0;
                        emrNodeList = emrNodeList.OrderBy(node => { return(Convert.ToDateTime(node.DataRowItem["captiondatetime"])); }).ToList();
                        foreach (EmrNode node in emrNodeList)
                        {
                            if (node.DataRowItem["sortid"].ToString() == "AC")
                            {
                                node.DataRowItem["captiondatetime"] = System.DateTime.Now.AddDays(dayCnt).ToString("yyyy-MM-dd HH:mm:ss");
                                dayCnt++;
                            }
                        }

                        HistoryEmrTimeAndCaption timeAndCaption = new HistoryEmrTimeAndCaption(emrNodeList, m_CurrentUCEmrInput);
                        timeAndCaption.StartPosition = FormStartPosition.CenterScreen;
                        if (timeAndCaption.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            //保存选中的历史病历
                            m_HistoryEmrBll.HistoryEmrBatchIn(emrNodeList, m_DeptChangeID);
                            MyMessageBox.Show("历史病历导入成功", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.InformationIcon);
                            this.Close();
                            RefreshEMRMainPad();
                            return;
                        }
                        else
                        {
                            return;
                        }
                    }

                    //保存选中的历史病历
                    m_HistoryEmrBll.HistoryEmrBatchIn(emrNodeList, m_DeptChangeID);
                    MyMessageBox.Show("历史病历导入成功", "提示", MyMessageBoxButtons.Ok, DrectSoft.Common.Ctrs.DLG.MessageBoxIcon.InformationIcon);
                    this.Close();
                    RefreshEMRMainPad();
                    return;
                }
            }
            catch (Exception ex)
            {
                MyMessageBox.Show(1, ex);
            }
        }