Пример #1
0
        /// <summary>
        /// 增加一个病人
        /// </summary>
        /// <param name="Patient"></param>
        public void AddNewPatient(RegPatient Patient)
        {
            Model.PatientInfo patientInfo = null;
            if (Patient.HisCardNo.Trim( ) != "")
            {
                string strWhere = Tables.patientinfo.MEDICARD + oleDb.EuqalTo( ) + "'" + Patient.HisCardNo + "'";
                patientInfo = BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).GetModel(strWhere);

                if (patientInfo != null)
                {
                    throw new OperatorException("就诊卡号重复!");
                }
            }
            patientInfo            = new HIS.Model.PatientInfo( );
            patientInfo.PatName    = Patient.PatientName;
            patientInfo.PatSex     = Patient.Sex;
            patientInfo.MediCard   = Patient.HisCardNo;
            patientInfo.PatBriDate = Patient.BornDate;
            patientInfo.PatGroup   = Patient.Folk;
            patientInfo.PatTEL     = Patient.Tel;
            patientInfo.PatAddress = Patient.Address;
            patientInfo.PATJOB     = Patient.Occupation;
            BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).Add(patientInfo);

            Patient.PatID = patientInfo.PatID;
        }
Пример #2
0
        /// <summary>
        ///  登记本次就诊
        /// </summary>
        /// <returns>本次就诊号</returns>
        public int NewRegister()
        {
            oleDb.BeginTransaction();
            try
            {
                HIS.Model.PatientInfo patinfo = new HIS.Model.PatientInfo();
                BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).Add(patinfo);


                HIS.Model.MZ_PatList register = new HIS.Model.MZ_PatList( );
                register.CureDate     = Convert.ToDateTime(HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime.ToString("yyyy-MM-dd")); //就诊日期
                register.CureDeptCode = "";                                                                                           //就诊科室
                register.CureEmpCode  = "";                                                                                           //就诊医生
                register.DiseaseCode  = "";                                                                                           //疾病代码
                register.DiseaseName  = "";                                                                                           //疾病名称
                register.HpCode       = "";                                                                                           //就医机构代码
                register.HpGrade      = "";                                                                                           //就医机构级别
                register.MediCard     = "";                                                                                           //医疗证卡号
                register.MediType     = "";                                                                                           //就诊类型
                register.PatCode      = "";                                                                                           //病人代码
                register.PatID        = patinfo.PatID;
                register.PatListID    = 0;                                                                                            //本次就诊号
                register.PatName      = "";                                                                                           //病人姓名
                register.PatSex       = "";                                                                                           //性别
                register.PYM          = "";                                                                                           //拼音码
                register.WBM          = "";                                                                                           //五笔码
                register.Age          = 0;
                register.VisitNo      = (new RegController( )).CreateVisitNo( );

                int newRegisterno = 0;
                newRegisterno = BindEntity <Model.MZ_PatList> .CreateInstanceDAL(oleDb).Add(register);

                if (newRegisterno > 0)
                {
                    this.PatID     = patinfo.PatID;
                    this.PatListID = newRegisterno;
                    this.VisitNo   = register.VisitNo;
                    oleDb.CommitTransaction( );
                    return(this.PatListID); //返回就诊ID
                }
                else
                {
                    throw new OperatorException("创建病人登记信息失败!");
                }
            }
            catch (OperatorException operr)
            {
                oleDb.RollbackTransaction( );
                throw operr;
            }
            catch (Exception err)
            {
                oleDb.RollbackTransaction( );
                ErrorWriter.WriteLog(err.Message);
                throw new Exception("新登记病人信息发生错误!");
            }
        }
Пример #3
0
        /// <summary>
        /// 保存挂号病人基本信息
        /// </summary>
        /// <param name="Patient"></param>
        /// <returns></returns>
        public bool SaveRegPatient(RegPatient Patient)
        {
            HIS.Model.PatientInfo mz_patient = null;
            try
            {
                mz_patient = BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).GetModel("PatID=" + Patient.PatID.ToString( ));

                if (mz_patient == null)
                {
                    (new CardController( )).AddNewPatient(Patient);
                }
                else
                {
                    (new CardController( )).UpdatePatient(Patient);
                }
                //mz_patient.ADDRESS = Patient.Address;
                //mz_patient.BORNDAY = Patient.BornDate;
                //mz_patient.CARDNO = Patient.HisCardNo;
                //mz_patient.FOLK = Patient.Folk;
                //mz_patient.IDCARD = Patient.IDCard;
                //mz_patient.OCCUPATION = Patient.Occupation;
                //mz_patient.PATNAME = Patient.PatientName;
                //mz_patient.SEX = Patient.Sex;
                //mz_patient.TEL = Patient.Tel;
                //mz_patient.TYPE = Convert.ToInt32( Patient.PatType.Code );
                //mz_patient.TYPE_NAME = Patient.PatType.Name;
                //if ( !Patient.ValidCardNo )
                //{
                //    BindEntity<Model.MZ_PATIENT>.CreateInstanceDAL( oleDb ).Add( mz_patient );
                //    Patient.PatID = mz_patient.PATID;
                //}
                //else
                //{
                //    BindEntity<Model.MZ_PATIENT>.CreateInstanceDAL( oleDb ).Update( mz_patient );
                //}
                return(true);
            }
            catch (OperatorException operr)
            {
                throw operr;
            }
            catch (Exception err)
            {
                ErrorWriter.WriteLog(err.Message);
                throw new Exception("保存病人基本信息失败!");
            }
        }
Пример #4
0
        /// <summary>
        /// 获得病人信息
        /// </summary>
        /// <param name="patlistId">病人就诊Id</param>
        /// <param name="recordTime">记录时间</param>
        /// <returns></returns>
        public XmlDocument GetPatInfo(int patlistId, DateTime recordTime)
        {
            XmlDocument xmlPatInfo = new XmlDocument();
            XmlNode     node       = xmlPatInfo.CreateElement("病人信息");

            xmlPatInfo.AppendChild(node);

            XmlNode basicNode = xmlPatInfo.CreateElement("基本信息");

            node.AppendChild(basicNode);

            XmlNode cureNode = xmlPatInfo.CreateElement("就诊信息");

            node.AppendChild(cureNode);

            HIS.Model.ZY_PatList patList = BindEntity <Model.ZY_PatList> .CreateInstanceDAL(_oleDb).GetModel(patlistId);

            HIS.Model.PatientInfo patInfo = BindEntity <Model.PatientInfo> .CreateInstanceDAL(_oleDb).GetModel(patList.PatID);

            #region 基本信息
            XmlNode childNode = xmlPatInfo.CreateElement("姓名");
            childNode.InnerText = "姓名:" + patInfo.PatName;
            basicNode.AppendChild(childNode);

            childNode           = xmlPatInfo.CreateElement("性别");
            childNode.InnerText = "性别:" + patInfo.PatSex;
            basicNode.AppendChild(childNode);

            childNode           = xmlPatInfo.CreateElement("年龄");
            childNode.InnerText = "年龄:" + CalculateAge(patInfo.PatBriDate);
            basicNode.AppendChild(childNode);

            childNode           = xmlPatInfo.CreateElement("科室");
            childNode.InnerText = "科室:" + new GWMHIS.BussinessLogicLayer.Classes.Deptment(Convert.ToInt64(patList.CureDeptCode)).Name;
            basicNode.AppendChild(childNode);

            childNode           = xmlPatInfo.CreateElement("床号");
            childNode.InnerText = "床号:" + patList.BedCode;
            basicNode.AppendChild(childNode);
            #endregion
            return(xmlPatInfo);
        }
Пример #5
0
        /// <summary>
        /// 保存病人就诊登记表
        /// </summary>
        /// <param name="Patient"></param>
        /// <returns></returns>
        private static Model.MZ_PatList SavePatList(RegPatient Patient)
        {
            if (Patient.PatID == 0)
            {
                Model.PatientInfo patinfo = new HIS.Model.PatientInfo();
                patinfo.PatName     = Patient.PatientName;
                patinfo.PatSex      = Patient.Sex;
                patinfo.PatBriDate  = Patient.BornDate;
                patinfo.ACCOUNTTYPE = Patient.PatType.Name;
                patinfo.PatGroup    = Patient.Folk;
                patinfo.PYM         = Patient.PYM;
                patinfo.WBM         = Patient.WBM;
                patinfo.LinkAddress = Patient.Address;
                patinfo.LinkTel     = Patient.Tel;
                patinfo.PatAddress  = Patient.Address;
                patinfo.PatTEL      = Patient.Tel;
                patinfo.ALLERGIC    = Patient.Allergic;
                BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).Add(patinfo);

                Patient.PatID = patinfo.PatID;
            }

            Model.MZ_PatList mz_patlist = new HIS.Model.MZ_PatList();
            mz_patlist.Age           = Patient.Age;
            mz_patlist.CureDate      = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;
            mz_patlist.MediType      = Patient.PatType.Code;
            mz_patlist.PatID         = Patient.PatID;
            mz_patlist.PatName       = Patient.PatientName;
            mz_patlist.PatSex        = Patient.Sex;
            mz_patlist.RegCode       = Patient.RegTypeCode;
            mz_patlist.RegName       = Patient.RegTypeName;
            mz_patlist.REG_DEPT_CODE = Patient.RegDeptCode;   //挂号科室
            mz_patlist.REG_DEPT_NAME = Patient.RegDeptName;
            mz_patlist.REG_DOC_CODE  = Patient.RegDoctorCode; //挂号医生
            mz_patlist.REG_DOC_NAME  = Patient.RegDoctorName;
            mz_patlist.HpGrade       = Patient.AgeUnit;
            BindEntity <Model.MZ_PatList> .CreateInstanceDAL(oleDb).Add(mz_patlist);

            return(mz_patlist);
        }
Пример #6
0
        /// <summary>
        /// 获取病人信息
        /// </summary>
        /// <param name="patlistId">病人</param>
        /// <param name="mzZyFlag">病人就诊Id</param>
        /// <param name="recordTime">记录时间</param>
        /// <returns></returns>
        public static XmlDocument GetPatInfo(int patlistId, int mzZyFlag, DateTime recordTime)
        {
            XmlDocument xmlPatInfo = new XmlDocument();
            XmlNode     node       = xmlPatInfo.CreateElement("病人信息");

            xmlPatInfo.AppendChild(node);

            XmlNode basicNode = xmlPatInfo.CreateElement("基本信息");

            node.AppendChild(basicNode);

            XmlNode cureNode = xmlPatInfo.CreateElement("就诊信息");

            node.AppendChild(cureNode);

            if (mzZyFlag == 0)
            {
                HIS.Model.MZ_PatList patList = BindEntity <Model.MZ_PatList> .CreateInstanceDAL(oleDb).GetModel(patlistId);

                HIS.Model.PatientInfo patInfo = BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).GetModel(Convert.ToInt32(patList.PatID));

                #region 基本信息
                XmlNode childNode = xmlPatInfo.CreateElement("姓名");
                childNode.InnerText = "姓名:" + patInfo.PatName;
                basicNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("科室");
                childNode.InnerText = "科室:" + patList.REG_DEPT_NAME;
                basicNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("门诊号");
                childNode.InnerText = "门诊号:" + patList.VisitNo;
                basicNode.AppendChild(childNode);
                #endregion

                #region 就诊信息
                childNode           = xmlPatInfo.CreateElement("姓名");
                childNode.InnerText = "姓名:" + patInfo.PatName;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("民族");
                childNode.InnerText = "民族:" + patInfo.PatGroup;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("性别");
                childNode.InnerText = "性别:" + patInfo.PatSex;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("职业");
                childNode.InnerText = "职业:" + patInfo.PATJOB;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("年龄");
                childNode.InnerText = "年龄:" + patList.Age.ToString().Trim() + patList.HpGrade.Trim();
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("籍贯");
                childNode.InnerText = "籍贯:";
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("联系电话");
                childNode.InnerText = "联系电话:" + patInfo.PatTEL;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("住址");
                childNode.InnerText = "住址:" + patInfo.PatAddress;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("就诊日期");
                childNode.InnerText = "就诊日期:" + patList.CureDate.ToLongDateString() + " " + patList.CureDate.ToLongTimeString();
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("记录日期");
                childNode.InnerText = "记录日期:" + recordTime.ToLongDateString() + " " + recordTime.ToLongTimeString();
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("病史陈述者");
                childNode.InnerText = "病史陈述者:患者本人";
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("可靠性");
                childNode.InnerText = "可靠性:可靠";
                cureNode.AppendChild(childNode);
                #endregion
            }
            else
            {
                HIS.Model.ZY_PatList patList = BindEntity <Model.ZY_PatList> .CreateInstanceDAL(oleDb).GetModel(patlistId);

                HIS.Model.PatientInfo patInfo = BindEntity <Model.PatientInfo> .CreateInstanceDAL(oleDb).GetModel(patList.PatID);

                #region 基本信息
                XmlNode childNode = xmlPatInfo.CreateElement("姓名");
                childNode.InnerText = "姓名:" + patInfo.PatName;
                basicNode.AppendChild(childNode);

                childNode = xmlPatInfo.CreateElement("科室");
                //childNode.InnerText = "科室:" + new GWMHIS.BussinessLogicLayer.Classes.Deptment(Convert.ToInt64(patList.CureDeptCode)).Name;
                if (mzZyFlag == 1)
                {
                    childNode.InnerText = "入院记录";
                }
                else if (mzZyFlag == 2)
                {
                    childNode.InnerText = "出院记录";
                }
                else if (mzZyFlag == 3)
                {
                    childNode.InnerText = "死亡记录";
                }
                basicNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("住院号");
                childNode.InnerText = "住院号:" + patInfo.CureNo;
                basicNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("入院时间");
                childNode.InnerText = patList.CureDate.ToLongDateString();
                basicNode.AppendChild(childNode);

                if (mzZyFlag == 3)
                {
                    childNode           = xmlPatInfo.CreateElement("死亡时间");
                    childNode.InnerText = patList.OutDate.ToLongDateString();
                    basicNode.AppendChild(childNode);
                }
                else
                {
                    childNode           = xmlPatInfo.CreateElement("出院时间");
                    childNode.InnerText = patList.OutDate.ToLongDateString();
                    basicNode.AppendChild(childNode);
                }

                childNode           = xmlPatInfo.CreateElement("住院天数");
                childNode.InnerText = (XcDate.ServerDateTime - patList.CureDate).Days + "天";//patList.ReaLiveNum.ToString() + "天";
                basicNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("入院诊断");
                childNode.InnerText = patList.DiseaseName;
                basicNode.AppendChild(childNode);
                #endregion

                #region 就诊信息
                #region 计算病人年龄
                string   patAge      = "";
                DateTime currentDate = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;
                if (patInfo.PatBriDate.Year != currentDate.Year && patInfo.PatBriDate.Date.AddYears(1) <= currentDate.Date)
                {
                    patAge = currentDate.Year - patInfo.PatBriDate.Year + "岁";
                }
                else if (patInfo.PatBriDate.Month != currentDate.Month && patInfo.PatBriDate.Date.AddMonths(1) <= currentDate.Date)
                {
                    int age = currentDate.Month - patInfo.PatBriDate.Month;
                    if (age < 0)
                    {
                        age += 12;
                    }
                    patAge = age + "月";
                }
                else if (patInfo.PatBriDate.Day != currentDate.Day && patInfo.PatBriDate.Date.AddDays(1) <= currentDate.Date)
                {
                    patAge = (currentDate - patInfo.PatBriDate).Days + "天";
                }
                else
                {
                    patAge = (currentDate - patInfo.PatBriDate).Hours + "小时";
                }
                #endregion

                childNode           = xmlPatInfo.CreateElement("姓名");
                childNode.InnerText = "姓名:" + patInfo.PatName;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("出生地");
                childNode.InnerText = "出生地:" + "";
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("性别");
                childNode.InnerText = "性别:" + patInfo.PatSex;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("民族");
                childNode.InnerText = "民族:" + patInfo.PatGroup;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("年龄");
                childNode.InnerText = "年龄:" + patAge;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("职业");
                childNode.InnerText = "职业:" + patInfo.PATJOB;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("婚姻");
                childNode.InnerText = "婚姻:" + "";
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("住址");
                childNode.InnerText = "住址:" + patInfo.PatAddress;
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("入院日期");
                childNode.InnerText = "入院时间:" + patList.CureDate.ToLongDateString() + " " + patList.CureDate.ToLongTimeString();
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("记录日期");
                childNode.InnerText = "记录时间:" + recordTime.ToLongDateString() + " " + recordTime.ToLongTimeString();
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("病史陈述者");
                childNode.InnerText = "病史陈述者:患者本人";
                cureNode.AppendChild(childNode);

                childNode           = xmlPatInfo.CreateElement("可靠性");
                childNode.InnerText = "可靠程度:认为可靠";
                cureNode.AppendChild(childNode);
                #endregion
            }
            return(xmlPatInfo);
        }
Пример #7
0
        /// <summary>
        /// 加载病人基本信息
        /// </summary>
        private void LoadPatientInfo()
        {
            _patientInfo = BindEntity <HIS.Model.PatientInfo> .CreateInstanceDAL(oleDb).GetModel((int)this.PatList.PatID);

            this._feeTypeName = HIS.MZDoc_BLL.OP_ReadBaseData.GetFeeTypeName(_patList.MediType);
        }