コード例 #1
0
        private void DoSaveTempContent(object sender, EventArgs e)
        {
            using (MemoryStream vSM = new MemoryStream())
            {
                (sender as frmRecord).EmrView.SaveToStream(vSM);  // 得到文档数据流

                int vTempID = ((sender as frmRecord).ObjectData as TemplateInfo).ID;

                EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                {
                    sqlComm.Parameters.AddWithValue("tid", vTempID);
                    sqlComm.Parameters.AddWithValue("content", vSM.GetBuffer());
                };

                if (emrMSDB.DB.ExecSql(emrMSDB.Sql_SaveTemplateConent, vEvent))
                {
                    (sender as frmRecord).EmrView.IsChanged = false;  // 保存后文档标识为非修改
                    MessageBox.Show("保存成功!");
                }
                else
                {
                    MessageBox.Show(emrMSDB.DB.ErrMsg);
                }
            }
        }
コード例 #2
0
        private void mniNewTemplate_Click(object sender, EventArgs e)
        {
            frmTemplateInfo vFrmTemplateInfo = new frmTemplateInfo();

            vFrmTemplateInfo.ShowDialog();
            if (vFrmTemplateInfo.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                if (vFrmTemplateInfo.TemplateName.Trim() == "")
                {
                    return;
                }

                int vTemplateID = -1;

                EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    sqlComm.CommandText = "CreateTemplate";

                    if (TreeNodeIsTemplate(tvTemplate.SelectedNode))
                    {
                        sqlComm.Parameters.AddWithValue("desID", (tvTemplate.SelectedNode.Tag as TemplateInfo).DesID);
                    }
                    else
                    {
                        sqlComm.Parameters.AddWithValue("desID", (tvTemplate.SelectedNode.Tag as DataSetInfo).ID);
                    }

                    sqlComm.Parameters.AddWithValue("tname", vFrmTemplateInfo.TemplateName);
                    sqlComm.Parameters.AddWithValue("owner", 1);
                    sqlComm.Parameters.AddWithValue("ownerid", 0);

                    //SqlParameter parOutput = sqlComm.Parameters.Add("@RecordID", SqlDbType.Int);
                    //parOutput.Direction = ParameterDirection.Output;
                    SqlParameter parRetrun = new SqlParameter("@TempID", SqlDbType.Int);
                    parRetrun.Direction = ParameterDirection.ReturnValue;
                    sqlComm.Parameters.Add(parRetrun);

                    sqlComm.ExecuteNonQuery();
                    vTemplateID = int.Parse(parRetrun.Value.ToString());
                };

                if (emrMSDB.DB.ExecStoredProcedure(vEvent))
                {
                    TemplateInfo vTempInfo = new TemplateInfo();
                    vTempInfo.ID      = vTemplateID;
                    vTempInfo.Owner   = 1;
                    vTempInfo.OwnerID = 0;
                    vTempInfo.Name    = vFrmTemplateInfo.TemplateName;

                    tvTemplate.SelectedNode     = tvTemplate.SelectedNode.Nodes.Add(vTempInfo.Name);
                    tvTemplate.SelectedNode.Tag = vTempInfo;
                }
                else
                {
                    MessageBox.Show("新建模板失败,请重试!\n" + emrMSDB.DB.ErrMsg);
                }
            }
        }
コード例 #3
0
        private void SaveRecordStructure(int aRecordID, frmRecord aFrmRecord, bool aInsert)
        {
            XmlDocument vXmlDoc = GetStructureToXml(aFrmRecord);

            if (vXmlDoc == null)
            {
                return;
            }

            using (MemoryStream vSM = new MemoryStream())
            {
                vXmlDoc.Save(vSM);

                EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                {
                    sqlComm.Parameters.AddWithValue("rid", aRecordID);
                    sqlComm.Parameters.AddWithValue("structure", vSM.GetBuffer());
                };

                if (aInsert)
                {
                    if (emrMSDB.DB.ExecSql("INSERT INTO Inch_RecordStructure (rid, structure) VALUES (@rid, @structure)", vEvent))
                    {
                    }
                    else
                    {
                        MessageBox.Show("保存病历结构失败:" + emrMSDB.DB.ErrMsg);
                    }
                }
                else
                {
                    if (emrMSDB.DB.ExecSql("UPDATE Inch_RecordStructure SET structure = @structure WHERE rid = @rid", vEvent))
                    {
                    }
                    else
                    {
                        MessageBox.Show("保存病历结构失败:" + emrMSDB.DB.ErrMsg);
                    }
                }
            }
        }
コード例 #4
0
        private void DoSaveItemContent()
        {
            using (MemoryStream vSM = new MemoryStream())
            {
                FEmrEdit.SaveToStream(vSM);

                EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                {
                    sqlComm.Parameters.AddWithValue("DItemID", FDomainItemID);
                    sqlComm.Parameters.AddWithValue("content", vSM.GetBuffer());
                };

                if (emrMSDB.DB.ExecSql(emrMSDB.Sql_SaveDomainItemContent, vEvent))
                {
                    MessageBox.Show("保存成功!");
                }
                else
                {
                    MessageBox.Show(emrMSDB.DB.ErrMsg);
                }
            }
        }
コード例 #5
0
        private void DoSaveRecordContent(object sender, EventArgs e)
        {
            frmRecord vFrmRecord = sender as frmRecord;

            if (!vFrmRecord.EmrView.IsChanged)
            {
                MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                DialogResult      dr         = MessageBox.Show("未发生变化,确定要执行保存?", "确认操作", messButton);
                if (dr != DialogResult.OK)
                {
                    return;
                }
            }

            RecordInfo vRecordInfo = vFrmRecord.Tag as RecordInfo;

            FTraverseTags.Clear();
            if (vFrmRecord.EmrView.Trace)
            {
                FTraverseTags.Add(TraverseTag.ttWriteTraceInfo);
                FTraverseTags.Add(TraverseTag.ttDataSetElement);
            }

            CheckRecordContent(vFrmRecord);  // 检查文档质控、痕迹等问题

            using (MemoryStream vSM = new MemoryStream())
            {
                vFrmRecord.EmrView.SaveToStream(vSM);

                if (vRecordInfo.ID > 0)  // 修改后保存
                {
                    EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                    {
                        sqlComm.Parameters.AddWithValue("RID", vRecordInfo.ID);
                        sqlComm.Parameters.AddWithValue("LastUserID", UserInfo.ID);
                        sqlComm.Parameters.AddWithValue("content", vSM.GetBuffer());
                    };

                    if (emrMSDB.DB.ExecSql(emrMSDB.Sql_SaveRecordContent, vEvent))
                    {
                        vFrmRecord.EmrView.IsChanged = false;
                        SaveRecordStructure(vRecordInfo.ID, vFrmRecord, false);  // 提取并保存病历结构
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存病历失败,请重试!\n" + emrMSDB.DB.ErrMsg);
                    }
                }
                else  // 保存新建的病历
                {
                    EMRView.emrMSDB.ExecCommandEventHanler vEvent = delegate(SqlCommand sqlComm)
                    {
                        sqlComm.CommandType = CommandType.StoredProcedure;
                        sqlComm.CommandText = "CreateInchRecord";
                        sqlComm.Parameters.AddWithValue("PatID", PatientInfo.PatID);
                        sqlComm.Parameters.AddWithValue("VisitID", PatientInfo.VisitID);
                        sqlComm.Parameters.AddWithValue("desid", vRecordInfo.DesID);
                        sqlComm.Parameters.AddWithValue("Name", vRecordInfo.RecName);
                        sqlComm.Parameters.AddWithValue("DT", vRecordInfo.DT);
                        sqlComm.Parameters.AddWithValue("DeptID", PatientInfo.DeptID);
                        sqlComm.Parameters.AddWithValue("CreateUserID", UserInfo.ID);
                        sqlComm.Parameters.AddWithValue("Content", vSM.GetBuffer());

                        //SqlParameter parOutput = sqlComm.Parameters.Add("@RecordID", SqlDbType.Int);
                        //parOutput.Direction = ParameterDirection.Output;
                        SqlParameter parRetrun = new SqlParameter("@RecordID", SqlDbType.Int);
                        parRetrun.Direction = ParameterDirection.ReturnValue;
                        sqlComm.Parameters.Add(parRetrun);

                        sqlComm.ExecuteNonQuery();
                        vRecordInfo.ID = int.Parse(parRetrun.Value.ToString());
                    };

                    if (emrMSDB.DB.ExecStoredProcedure(vEvent))
                    {
                        vFrmRecord.EmrView.IsChanged = false;
                        SaveRecordStructure(vRecordInfo.ID, vFrmRecord, true);  // 提取并保存病历结构
                        GetPatientRecordListUI();
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存病历失败,请重试!\n" + emrMSDB.DB.ErrMsg);
                    }
                }
            }
        }