/// <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; }
/// <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("新登记病人信息发生错误!"); } }
/// <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("保存病人基本信息失败!"); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }