/// <summary> /// 通过Ent4BannerDTO设置DIDTO中主表属性 /// <para>该方法为未保存过诊断时调用</para> /// /// </summary> /// <param name="bannerDTO">banner数据</param> /// <param name="didto"></param> private void setCiDiagDOProperty(Ent4BannerDTO bannerDTO, DIDTO didto) { DeptDO dept = context.Dept; PsnInfo psnInfo = context.PsnInfo; DateTime dataTime = CommonExtentions.NowTime(this); didto.Id_emp_create = psnInfo.Id_psndoc; // 开立医生 诊断医生 取当前登录人 didto.Id_emp_create_name = psnInfo.Name; // 开立医生姓名 医生姓名 取当前登录人 didto.Dt_di = dataTime; // 诊断时间 (诊断时间与开立时间 Dt_create 重复,暂且都赋值) didto.Id_dep_create = dept.Id_dep; // 开立科室 didto.Id_dep_create_name = dept.Name; // 开立科室名称 didto.Dt_create = dataTime; // 开立时间 didto.Id_dep = dept.Id_dep; // 诊断科室 是否还有用? didto.Id_en = bannerDTO.Id_ent; // 就诊id didto.Id_pat = bannerDTO.Id_pat; // 患者id didto.Id_entp = bannerDTO.Id_entp; // 就诊类型 didto.Code_entp = bannerDTO.Code_entp; // 就诊类型编码 didto.Id_emp_sign = psnInfo.Id_psndoc; // 签署人 didto.Name_emp_sign = psnInfo.Name; // 签署人名称 didto.Id_dep_sign = dept.Id_dep; // 签署科室 didto.Dt_sign = dataTime; // 签署时间 didto.Fg_sign = FBoolean.True; // 签署标志 }
/// <summary> /// 设置诊断与当前环境相关的属性 /// </summary> /// <returns></returns> private DIDTO SetEnvironmentVariable(DIDTO diDTO) { // @@ 诊断映射可以统一优化 DeptDO dept = this.context.Dept; PsnInfo user = this.context.PsnInfo; PsnInfo psnInfo = UserManager.getInstance().CurrentPsnInfo; //.Id_psndoc; diDTO.Id_en = this.ent4BannerDTO.Id_ent; //就诊id diDTO.Id_pat = this.ent4BannerDTO.Id_pat; //患者id diDTO.Id_entp = this.ent4BannerDTO.Id_entp; //就诊类型 diDTO.Code_entp = this.ent4BannerDTO.Code_entp; //就诊类型编码 diDTO.Id_ditp = CiDictCodeConst.ID_OPDI; //诊断类型 诊断过程状态 门诊、初步、入院、补充、修正、出院、死亡 diDTO.Sd_ditp = CiDictCodeConst.SD_OPDI; //诊断类型编码 diDTO.Id_ditp_name = "门诊诊断"; //诊断类型名称 diDTO.Id_emp_create = user.Id_psndoc; //诊断医生 diDTO.Id_emp_create_name = user.Name; //医生姓名 diDTO.Id_dep = dept.Id_dep; //诊断科室 diDTO.Dt_di = CommonExtentions.NowTime(this); //诊断时间 diDTO.Id_emp_sign = user.Id_psndoc; //签署人 diDTO.Name_emp_sign = user.Name; //签署人名称 diDTO.Fg_sign = FBoolean.True; //签署标识 diDTO.Id_dep_sign = dept.Id_dep; //签署科室 diDTO.Dt_sign = CommonExtentions.NowTime(this); //签署时间 diDTO.Id_dep_create = dept.Id_dep; //开立科室 diDTO.Id_dep_create_name = dept.Name; //开立科室名称 diDTO.Dt_create = CommonExtentions.NowTime(this); //开立时间 // 根据诊断体系确定是中医诊断还是西医诊断,目前不是西医诊断都认为是中医诊断,蒙医、手术后续有调整是在判断 // 西医标志 根据诊断体系判断,如果是西医诊断,设置为true,否则设置为false if (CiDictCodeConst.ID_CI_DISYS_XYZDTX.Equals(diDTO.Id_disys)) { diDTO.Fg_med = FBoolean.True; } else { diDTO.Fg_med = FBoolean.False; } return(diDTO); }
/// <summary> /// 获取过敏史集合 /// </summary> /// <returns></returns> //private List<PresInfo.AllergicHistory> GetAllergicHistory() //{ // List<PresInfo.AllergicHistory> allergicHistory = new List<PresInfo.AllergicHistory>(); // PresInfo.AllergicHistory allergic = new PresInfo.AllergicHistory(); // allergicHistory.Add(allergic); // return allergicHistory; //} /// <summary> /// 设置处方分析中医生、患者相关属性 /// </summary> /// <param name="presInfo"></param> private void SetDoctorPresInfo(CiEnContextDTO ctxDTO, ref PresInfo presInfo) { Ent4BannerDTO ent4BannerDTO = ctxDTO.Ent4BannerDTO; //UserDO user = this.context.User; PsnInfo psnInfo = ctxDTO.PsnInfo; DeptDO dept = ctxDTO.Dept; presInfo.Doctor_job_number = psnInfo.Code; //医生工号 TODO 医生工号? presInfo.Pres_date = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //处方日期 TODO 取当前日期是否可行 presInfo.Doctor_name = psnInfo.Name; // 医生名 //presInfo.Doctor_type = 医生级别 presInfo.Department_code = ent4BannerDTO.Id_dep_phy; // 科室代码 ? 开立科室 本次就诊科室 presInfo.Department_name = ent4BannerDTO.Name_dep_phy; // 科室名称 // 患者基本信息PI_PAT .CHIS条码号barcode_chis ;住院-- 住院号,患者基本信息PI_PAT .住院病案编号code_amr_ip presInfo.Case_id = ent4BannerDTO.Code_amr_ip; //病历卡号 TODO 确定属性内后在设置 presInfo.Inhos_code = ent4BannerDTO.Code_ent; //门诊就诊号 presInfo.Bed_no = ent4BannerDTO.Name_bed; //床号 门诊床号可以为空,实际大通不支持空值 presInfo.Patient_weight = ""; //患者体重 presInfo.Patient_height = ""; //患者身高 if (!string.IsNullOrEmpty(ent4BannerDTO.Dt_birth)) { try { presInfo.Patient_birth = DateTime.Parse(ent4BannerDTO.Dt_birth); //患者出生日期 } catch (Exception e) { LogManager.GetLogger().ErrorEx("合理用药获取患者生日失败,生日值【" + ent4BannerDTO.Dt_birth + "】"); } } presInfo.Patient_name = ent4BannerDTO.Name_pat; // 患者名称 presInfo.Patient_sex = ent4BannerDTO.Name_sex; // 患者性别 presInfo.Physiological_statms = ""; //生理状况 presInfo.Boacterioscopy_effect = ""; // 菌检结果 presInfo.Bloodpressure = ""; // 血压 presInfo.Liver_clean = ""; // 肌酐清除率 }