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); } } }
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); } } }
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); } } } }
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); } } }
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); } } } }