/// <summary> /// 病历控件承载面板 /// </summary> /// <param name="info">病历基本信息</param> /// <param name="createNewRecord">是否创建新病历记录</param> public EMRControlPanel(Public.EMRRecordInfo info, bool createNewRecord) { InitializeComponent(); _recordInfo = info; Public.StaticVariable.CurrentRecordInfo = info; if (createNewRecord) { _oldRecord = new HIS.EMR_BLL.EmrRecord(); _oldRecord.RecordId = -1; _control = EMRRecordControlFactory.CreateEMRRecordControl(info.RecordType); _emrPrint = EMRPrintObjectFactory.CreateEMRPrintObject(info.RecordType); } else { _oldRecord = new HIS.EMR_BLL.EmrRecord(info.Patid, info.PatListid, Public.PublicStaticFunction.GetEMRTypeCode(info.RecordType)); _control = EMRRecordControlFactory.CreateEMRRecordControl(info.RecordType, _oldRecord.RecordContentXml); _emrPrint = EMRPrintObjectFactory.CreateEMRPrintObject(info.RecordType, _oldRecord.RecordContentXml); } this._control.BorderStyle = BorderStyle.Fixed3D; this.Controls.Clear(); this.Controls.Add(_control); this.Controls.Add(this.plBottom); this.btSaveEMRRecord.Enabled = this._oldRecord.UpdateFlag == 0; }
//保存病历记录 public void btSaveEMRRecord_Click(object sender, EventArgs e) { HIS.EMR_BLL.EmrRecord newRecord = new HIS.EMR_BLL.EmrRecord(); newRecord.PatId = (int)_recordInfo.Patid; newRecord.PatListId = (int)_recordInfo.PatListid; newRecord.RecordType = Public.PublicStaticFunction.GetEMRTypeCode(_recordInfo.RecordType); newRecord.RecordContentXml = _control.GetValue(); newRecord.RecordCreateEmp = (int)_recordInfo.CreateEmpId; newRecord.RecordCreateDept = (int)_recordInfo.CreateDeptId; newRecord.RecordCreateDate = XcDate.ServerDateTime; newRecord.HistoryRecordId = -1; if (_oldRecord.RecordId > -1) { newRecord.HistoryRecordId = _oldRecord.RecordId; } newRecord.Add(); _oldRecord.Invalid(); this._oldRecord = newRecord; MessageBox.Show("保存成功!", "提示"); if (EMRSaved != null) { EMRSaved(sender, e); } }
public EMRControlPanel(HIS.EMR_BLL.EmrRecord record) { InitializeComponent(); _control = EMRRecordControlFactory.CreateEMRRecordControl(record.RecordType, record.RecordContentXml); _emrPrint = EMRPrintObjectFactory.CreateEMRPrintObject(record.RecordType, record.RecordContentXml); this._control.BorderStyle = BorderStyle.Fixed3D; this.Controls.Clear(); this.Controls.Add(_control); this.Controls.Add(this.plBottom); this.plBottom.Visible = false; }
/// <summary> /// 病历控件承载面板 /// </summary> /// <param name="info">病历基本信息</param> /// <param name="recordId">病历记录ID</param> public EMRControlPanel(Public.EMRRecordInfo info, int recordId) { InitializeComponent(); _recordInfo = info; Public.StaticVariable.CurrentRecordInfo = info; _oldRecord = new HIS.EMR_BLL.EmrRecord(recordId); _control = EMRRecordControlFactory.CreateEMRRecordControl(info.RecordType, _oldRecord.RecordContentXml); _emrPrint = EMRPrintObjectFactory.CreateEMRPrintObject(info.RecordType, _oldRecord.RecordContentXml); this._control.BorderStyle = BorderStyle.Fixed3D; this.Controls.Clear(); this.Controls.Add(_control); this.Controls.Add(this.plBottom); this.btSaveEMRRecord.Enabled = this._oldRecord.UpdateFlag == 0; }
public void EmrList_RecordRowSelected(object sender, EventArgs e) { if (sender != null) { HIS.EMR_BLL.EmrRecord record = new HIS.EMR_BLL.EmrRecord(); record.RecordType = Public.PublicStaticFunction.GetEMRTypeCode(_recordInfo.RecordType); record.RecordContent = sender.ToString(); EMRControlPanel panel = new EMRControlPanel(record); panel.Dock = DockStyle.Fill; Form form = new Form(); form.Size = new Size(650, 800); form.Controls.Add(panel); form.StartPosition = FormStartPosition.CenterScreen; form.ShowDialog(); } }
/// <summary> /// 打印病历 /// </summary> public void Print(HIS.EMR_BLL.EmrRecord emrRecord) { XmlDocument xmlDoc = new HIS.EMR_BLL.OperaEmrRecord().GetPatInfo(emrRecord.PatListId, emrRecord.RecordCreateDate); object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; Word.Application wordApp = new Word.Application(); base.InitWordApplication(wordApp, xmlDoc, Public.EMRType.手术记录); int columnNum = xmlDoc.SelectSingleNode("病人信息/基本信息").ChildNodes.Count; Word.Table table = wordApp.ActiveDocument.Tables.Add(wordApp.Selection.Range, columnNum, 1, ref oMissing, ref oMissing); wordApp.Selection.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleNone; wordApp.Selection.Borders.InsideLineStyle = WdLineStyle.wdLineStyleNone; int columnNo = 1; object step = 1; object unit = Word.WdUnits.wdCharacter; object extend = Word.WdMovementType.wdExtend; foreach (XmlNode node in xmlDoc.SelectSingleNode("病人信息/基本信息").ChildNodes) { wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyTitleFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyTitleFontName; wordApp.Selection.TypeText(" " + node.InnerText.Split(':')[0] + ":"); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyFontName; wordApp.Selection.TypeText(node.InnerText.Split(':')[1]); columnNo++; //if (columnNo <= columnNum) //{ // wordApp.Selection.Move(ref unit, ref step); //} //else //{ unit = Word.WdUnits.wdLine; wordApp.Selection.MoveDown(ref unit, ref step, ref oMissing); // break; //} } XElement xe = XElement.Parse(this.GetValue().InnerXml); var nodes = from e in xe.Descendants() orderby e.Attribute("Code").Value select e; foreach (XElement node in nodes) { if (node.Value.ToString().Trim().Length > 0) { wordApp.Selection.TypeParagraph(); wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyTitleFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyTitleFontName; wordApp.Selection.TypeText(" " + node.Name.ToString().Trim() + ":"); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyFontName; wordApp.Selection.TypeText(node.Value.ToString().Trim()); } } //医生签名 wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeParagraph(); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = 0; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; wordApp.Selection.TypeText("手术医师:____________________"); wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeText("主治医师:____________________"); wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeText("科主任或副主任医师:__________"); wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeText(" 记录时间:" + emrRecord.RecordCreateDate.Year + "." + emrRecord.RecordCreateDate.Month + "." + emrRecord.RecordCreateDate.Day + "." + emrRecord.RecordCreateDate.Hour + ":" + emrRecord.RecordCreateDate.Minute); }
/// <summary> /// 打印病历 /// </summary> public void Print(HIS.EMR_BLL.EmrRecord emrRecord) { XmlDocument xmlDoc = HIS.EMR_BLL.OP_EmrRecord.GetPatInfo(emrRecord.PatListId, 0, emrRecord.RecordCreateDate); object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; Word.Application wordApp = new Word.Application(); base.InitWordApplication(wordApp, xmlDoc, Public.EMRType.入院记录); //插入标题 wordApp.Selection.TypeParagraph(); wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = 2; wordApp.Selection.TypeText(this.Name); wordApp.Selection.TypeParagraph(); wordApp.ActiveDocument.Tables.Add(wordApp.Selection.Range, 6, 2, ref oMissing, ref oMissing); wordApp.Selection.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleNone; wordApp.Selection.Borders.InsideLineStyle = WdLineStyle.wdLineStyleNone; wordApp.Selection.Cells.Height = 22; int rowNo = 1; int columnNo = 1; object step = 1; object unit = Word.WdUnits.wdCharacter; object extend = Word.WdMovementType.wdExtend; foreach (XmlNode node in xmlDoc.SelectSingleNode("病人信息/就诊信息").ChildNodes) { wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = 0; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.TypeText(" " + node.InnerText); columnNo++; if (columnNo > 2) { columnNo = 1; rowNo++; } if (rowNo > 6) { unit = Word.WdUnits.wdLine; wordApp.Selection.MoveDown(ref unit, ref step, ref oMissing); break; } if (columnNo == 1) { unit = Word.WdUnits.wdCell; wordApp.Selection.MoveRight(ref unit, ref step, ref oMissing); } else { wordApp.Selection.Move(ref unit, ref step); } } XElement xe = XElement.Parse(this.GetValue().InnerXml); var nodes = from e in xe.Descendants() orderby e.Attribute("Code").Value select e; foreach (XElement node in nodes) { if (node.Value.ToString().Trim().Length > 0) { wordApp.Selection.TypeParagraph(); wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyTitleFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyTitleFontName; wordApp.Selection.TypeText(" " + node.Name.ToString().Trim() + ":"); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyFontName; wordApp.Selection.TypeText(node.Value.ToString().Trim()); } } //医生签名 wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeParagraph(); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = 0; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; //wordApp.Selection.TypeText("医生签名:" + new GWMHIS.BussinessLogicLayer.Classes.Employee((long)emrRecord.RecordCreateEmp).Name + " "); wordApp.Selection.TypeText("医生签名:____________________"); wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeText(emrRecord.RecordCreateDate.ToLongDateString() + " "); }
/// <summary> /// 打印病历 /// </summary> public void Print(HIS.EMR_BLL.EmrRecord emrRecord) { XmlDocument xmlDoc = HIS.EMR_BLL.OP_EmrRecord.GetPatInfo(emrRecord.PatListId, 3, emrRecord.RecordCreateDate); object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; Word.Application wordApp = new Word.Application(); base.InitWordApplication(wordApp, xmlDoc, Public.EMRType.死亡记录); int columnNo = 1; foreach (XmlNode node in xmlDoc.SelectSingleNode("病人信息/基本信息").ChildNodes) { if (columnNo > 3) { wordApp.Selection.TypeParagraph(); wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyTitleFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyTitleFontName; wordApp.Selection.TypeText(" " + node.Name + ":"); wordApp.Selection.ParagraphFormat.SpaceAfter = 3f; wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyFontName; wordApp.Selection.TypeText(node.InnerText); } columnNo++; } XElement xe = XElement.Parse(this.GetValue().InnerXml); var nodes = from e in xe.Descendants() orderby e.Attribute("Code").Value select e; foreach (XElement node in nodes) { if (node.Value.ToString().Trim().Length > 0) { wordApp.Selection.TypeParagraph(); wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; wordApp.Selection.Font.Size = Public.StaticVariable.BodyTitleFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyTitleFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyTitleFontName; wordApp.Selection.TypeText(" " + node.Name.ToString().Trim() + ":"); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = Public.StaticVariable.BodyFontBold; wordApp.Selection.Font.Name = Public.StaticVariable.BodyFontName; wordApp.Selection.TypeText(node.Value.ToString().Trim()); } } //医生签名 wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeParagraph(); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = 0; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; //wordApp.Selection.TypeText("医师签名:" + new GWMHIS.BussinessLogicLayer.Classes.Employee((long)emrRecord.RecordCreateEmp).Name + " "); wordApp.Selection.TypeText("医师签名:____________________"); wordApp.Selection.TypeParagraph(); wordApp.Selection.TypeText(emrRecord.RecordCreateDate.ToLongDateString() + emrRecord.RecordCreateDate.Hour + "时 "); }
/// <summary> /// 打印病历 /// </summary> public void Print(HIS.EMR_BLL.EmrRecord emrRecord) { XmlDocument xmlDoc = HIS.EMR_BLL.OP_EmrRecord.GetPatInfo(emrRecord.PatListId, 1, emrRecord.RecordCreateDate); Word.Application wordApp = new Word.Application(); base.InitWordApplication(wordApp, xmlDoc, Public.EMRType.病程记录); DataTable tmpTable = HIS.EMR_BLL.OP_EmrRecord.GetDiseaseCourseRecord(emrRecord.PatId, emrRecord.PatListId, Public.PublicStaticFunction.GetEMRTypeCode(Public.EMRType.病程记录)); for (int index = 0; index < tmpTable.Rows.Count; index++) { HIS.EMR_BLL.EmrRecord record = new HIS.EMR_BLL.EmrRecord(); record = (HIS.EMR_BLL.EmrRecord)HIS.SYSTEM.PubicBaseClasses.ApiFunction.DataTableToObject(tmpTable, index, record); //病程记录时间 wordApp.Selection.TypeParagraph(); wordApp.Selection.Font.Size = Public.StaticVariable.BodyFontSize; wordApp.Selection.Font.Bold = 1; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; if (index == 0) { wordApp.Selection.TypeText(record.RecordCreateDate.ToLongDateString() + " " + record.RecordCreateDate.ToLongTimeString() + ":首次病程记录"); } else { wordApp.Selection.TypeText(record.RecordCreateDate.ToLongDateString() + " " + record.RecordCreateDate.ToLongTimeString()); } XElement xe = XElement.Parse(record.RecordContentXml.InnerXml.ToString()); var nodes = from e in xe.Descendants() orderby e.Attribute("Code").Value select e; int num = -1; foreach (XElement node in nodes) { num++; if (node.Value.ToString().Trim().Length <= 0) { continue; } switch (num) { case 0: WriteBodyTitle(wordApp, "一、" + node.Name.ToString().Trim() + ":", 2); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 4); WriteBodyTitle(wordApp, "" + "二、拟诊讨论" + ":", 2); break; case 1: WriteBodyTitle(wordApp, "1、" + node.Name.ToString().Trim() + ":", 4); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 6); break; case 2: WriteBodyTitle(wordApp, "2、" + node.Name.ToString().Trim() + ":", 4); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 6); break; case 3: WriteBodyTitle(wordApp, "3、" + node.Name.ToString().Trim() + ":", 4); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 6); break; case 4: WriteBodyTitle(wordApp, "三、" + node.Name.ToString().Trim() + ":", 2); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 4); break; case 5: WriteBodyTitle(wordApp, "四、" + node.Name.ToString().Trim() + ":", 2); WriteBody(wordApp, "" + node.Value.ToString().Trim(), 4); break; } } wordApp.Selection.TypeParagraph(); //医生签名 wordApp.Selection.Font.Size = textFontSize; wordApp.Selection.Font.Bold = 0; wordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; //wordApp.Selection.TypeText("医师签名:" + new GWMHIS.BussinessLogicLayer.Classes.Employee((long)record.RecordCreateEmp).Name); wordApp.Selection.TypeText("住院医师:____________________"); //wordApp.Selection.TypeParagraph(); //wordApp.Selection.TypeText(emrRecord.RecordCreateDate.ToLongDateString() + " "); wordApp.Selection.TypeParagraph(); } }
public EMRControl(HIS.EMR_BLL.EmrRecord record) { InitializeComponent(); this._emrRecord = record; this.SetValue(record.RecordContentXml); }