Example #1
0
        /// <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;
        }
Example #2
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);
            }
        }
Example #3
0
 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;
 }
Example #4
0
        /// <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;
        }
Example #5
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();
     }
 }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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() + "    ");
        }
Example #8
0
        /// <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 + "时    ");
        }
Example #9
0
        /// <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();
            }
        }
Example #10
0
 public EMRControl(HIS.EMR_BLL.EmrRecord record)
 {
     InitializeComponent();
     this._emrRecord = record;
     this.SetValue(record.RecordContentXml);
 }