示例#1
0
        private void  除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                DialogResult      dr         = MessageBox.Show("删除病历 " + tvRecord.SelectedNode.Text + " ?", "确认操作", messButton);
                if (dr == DialogResult.OK)
                {
                    int vPageIndex = GetRecordPageIndex(vRecordID);
                    if (vPageIndex >= 0)
                    {
                        CloseRecordPage(tabRecord.SelectedIndex, false);
                    }

                    if (emrMSDB.DB.DeletePatientRecord(vRecordID))
                    {
                        tvRecord.Nodes.Remove(tvRecord.SelectedNode);
                        MessageBox.Show("删除成功!");
                    }
                }
            }
        }
        private void TvRecord_DoubleClick(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            FfrmImportRecord.EmrView.Clear();

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            EMR.GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                using (MemoryStream vSM = new MemoryStream())
                {
                    emrMSDB.DB.GetRecordContent((tvRecord.SelectedNode.Tag as RecordInfo).ID, vSM);
                    if (vSM.Length > 0)
                    {
                        FfrmImportRecord.EmrView.LoadFromStream(vSM);
                        FfrmImportRecord.EmrView.Focus();
                    }
                }
            }
        }
示例#3
0
        private void 签名ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                if (emrMSDB.DB.SignatureInchRecord(vRecordID, UserInfo.ID))
                {
                    MessageBox.Show(UserInfo.Name + ",签名成功!后续的修改将留下修改痕迹!");
                }

                int vPageIndex = GetRecordPageIndex(vRecordID);
                if (vPageIndex >= 0)
                {
                    frmRecord vFrmRecord = GetPageRecord(vPageIndex);
                    vFrmRecord.EmrView.Trace = true;
                }
            }
        }
示例#4
0
        private TreeNode FindRecordNode(int aRecordID)
        {
            for (int i = 0; i < tvRecord.Nodes.Count; i++)
            {
                if (EMR.TreeNodeIsRecord(tvRecord.Nodes[i]))
                {
                    return(tvRecord.Nodes[i]);
                }
            }

            return(null);
        }
示例#5
0
        private void 导出XML结构ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                SaveFileDialog vSaveDlg = new SaveFileDialog();
                vSaveDlg.Filter = "XML|*.xml";
                vSaveDlg.ShowDialog();
                if (vSaveDlg.FileName != "")
                {
                    int vPageIndex = GetRecordPageIndex(vRecordID);
                    if (vPageIndex < 0)
                    {
                        LoadPatientRecordContent(tvRecord.SelectedNode.Tag as RecordInfo);
                        vPageIndex = GetRecordPageIndex(vRecordID);
                    }
                    else
                    {
                        tabRecord.SelectedIndex = vPageIndex;
                    }

                    frmRecord vFrmRecord = GetPageRecord(vPageIndex);

                    string vFileName = Path.GetExtension(vSaveDlg.FileName);
                    if (vFileName.ToLower() != ".xml")
                    {
                        vFileName = vSaveDlg.FileName + ".xml";
                    }
                    else
                    {
                        vFileName = vSaveDlg.FileName;
                    }

                    SaveStructureToXml(vFrmRecord, vFileName);
                }
            }
        }
示例#6
0
        private void 编辑ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                int vPageIndex = GetRecordPageIndex(vRecordID);
                if (vPageIndex < 0)
                {
                    LoadPatientRecordContent(tvRecord.SelectedNode.Tag as RecordInfo);
                    vPageIndex = GetRecordPageIndex(vRecordID);
                }
                else
                {
                    tabRecord.SelectedIndex = vPageIndex;
                }

                frmRecord vFrmRecord = GetPageRecord(vPageIndex);
                vFrmRecord.EmrView.ReadOnly = false;
                vFrmRecord.EmrView.UpdateView();

                try
                {
                    vFrmRecord.EmrView.Trace = emrMSDB.DB.GetInchRecordSignature(vRecordID);
                    if (vFrmRecord.EmrView.Trace)
                    {
                        MessageBox.Show("病历已经签名,后续的修改将留下修改痕迹!");
                    }
                }
                catch (Exception exp)
                {
                    vFrmRecord.EmrView.ReadOnly = true;
                    MessageBox.Show("编辑病历失败!" + exp.Message + "\n\r" + emrMSDB.DB.ErrMsg);
                }
            }
        }
示例#7
0
        private void 查看ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vRecordID > 0)
            {
                int vPageIndex = GetRecordPageIndex(vRecordID);
                if (vPageIndex < 0)
                {
                    LoadPatientRecordContent(tvRecord.SelectedNode.Tag as RecordInfo);
                    vPageIndex = GetRecordPageIndex(vRecordID);
                }
                else
                {
                    tabRecord.SelectedIndex = vPageIndex;
                }

                frmRecord vFrmRecord = null;
                try
                {
                    vFrmRecord = GetPageRecord(vPageIndex);
                }
                finally
                {
                    vFrmRecord.EmrView.ReadOnly = true;
                }

                vFrmRecord.EmrView.Trace = emrMSDB.DB.GetInchRecordSignature(vRecordID);
            }
        }
示例#8
0
        public static void GetNodeRecordInfo(TreeNode aNode, ref int aDesPID, ref int aDesID, ref int aRecordID)
        {
            aDesPID   = -1;
            aDesID    = -1;
            aRecordID = -1;

            if (EMR.TreeNodeIsRecord(aNode))
            {
                aDesID    = (aNode.Tag as RecordInfo).DesID;
                aRecordID = (aNode.Tag as RecordInfo).ID;

                aDesPID = -1;
                TreeNode vNode = aNode;
                while (vNode.Parent != null)
                {
                    vNode = vNode.Parent;
                    if (EMR.TreeNodeIsRecordDataSet(vNode))
                    {
                        aDesPID = (vNode.Tag as RecordDataSetInfo).DesPID;
                        break;
                    }
                }
            }
        }
示例#9
0
        private void 预览全部病程ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!EMR.TreeNodeIsRecord(tvRecord.SelectedNode))
            {
                return;
            }

            int vDesPID = -1, vDesID = -1, vRecordID = -1;

            GetNodeRecordInfo(tvRecord.SelectedNode, ref vDesPID, ref vDesID, ref vRecordID);

            if (vDesPID == DataSetInfo.Proc)
            {
                int vPageIndex = GetRecordPageIndex(-vDesPID);
                if (vPageIndex < 0)
                {
                    LoadPatientDataSetContent(vDesPID);
                }
                else
                {
                    tabRecord.SelectedIndex = vPageIndex;
                }
            }
        }