/// <summary> /// 获取职工入院登记入参 /// </summary> /// <param name="param"></param> /// <param name="paramDto"></param> /// <param name="user"></param> /// <returns></returns> private WorKerHospitalizationRegisterParam GetWorkerHospitalizationRegisterParam( WorKerHospitalizationRegisterUiParam param, InpatientInfoDto paramDto, UserInfoDto user) { var iniParam = new WorKerHospitalizationRegisterParam(); var diagnosisData = CommonHelp.GetDiagnosis(param.DiagnosisList); iniParam.AdmissionMainDiagnosisIcd10 = diagnosisData.AdmissionMainDiagnosisIcd10; iniParam.DiagnosisIcd10Two = diagnosisData.DiagnosisIcd10Two; iniParam.DiagnosisIcd10Three = diagnosisData.DiagnosisIcd10Three; iniParam.AdmissionMainDiagnosis = diagnosisData.DiagnosisDescribe; //获取医院等级 var gradeData = _systemManageRepository.QueryHospitalOrganizationGrade(user.OrganizationCode); if (gradeData == null) { throw new Exception("获取医院等级失败!!!"); } if (string.IsNullOrWhiteSpace(gradeData.AdministrativeArea)) { throw new Exception("当前医院未设置行政区域!!!"); } iniParam.IdentityMark = param.IdentityMark; iniParam.AfferentSign = param.AfferentSign; iniParam.MedicalCategory = param.MedicalCategory; iniParam.AdmissionDate = Convert.ToDateTime(paramDto.AdmissionDate).ToString("yyyyMMdd"); iniParam.InpatientDepartmentCode = paramDto.InDepartmentId; iniParam.BedNumber = paramDto.AdmissionBed; iniParam.HospitalizationNo = paramDto.HospitalizationNo; iniParam.Operators = paramDto.AdmissionOperator; iniParam.BusinessId = param.BusinessId; iniParam.AdministrativeArea = gradeData.AdministrativeArea; iniParam.InpatientArea = paramDto.AdmissionWard; //iniParam.DiagnosisList = param.DiagnosisList; var userData = _systemManageRepository.QueryHospitalOperator( new QueryHospitalOperatorParam() { UserId = param.UserId }); iniParam.OrganizationCode = gradeData.MedicalInsuranceAccount; return(iniParam); }
/// <summary> /// 职工入院登记 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerHospitalizationRegisterDto WorkerHospitalizationRegister(WorKerHospitalizationRegisterUiParam param) {//his登陆 var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var infoData = new GetInpatientInfoParam() { User = userBase, BusinessId = param.BusinessId, }; //获取医保病人 var inpatientData = _serviceBasicService.GetInpatientInfo(infoData); if (inpatientData == null) { throw new Exception("获取医保病人失败!!!"); } var workerParam = GetWorkerHospitalizationRegisterParam(param, inpatientData, userBase); //医保执行 var registerData = _workerMedicalInsuranceRepository.WorkerHospitalizationRegister(workerParam); if (registerData == null) { throw new Exception("职工入院登记未反馈数据!!!"); } var saveData = new MedicalInsuranceDto { AdmissionInfoJson = JsonConvert.SerializeObject(workerParam), BusinessId = param.BusinessId, Id = Guid.NewGuid(), IsModify = false, InsuranceType = 310, MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceHospitalized, MedicalInsuranceHospitalizationNo = registerData.MedicalInsuranceHospitalizationNo, AfferentSign = param.AfferentSign, IdentityMark = param.IdentityMark }; //存中间库 _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData); //回参构建 var xmlData = new HospitalizationRegisterXml() { MedicalInsuranceType = "1", MedicalInsuranceHospitalizationNo = registerData.MedicalInsuranceHospitalizationNo, InsuranceNo = null, }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "21", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; //存基层 _webBasicRepository.SaveXmlData(saveXml); saveData.MedicalInsuranceState = MedicalInsuranceState.HisHospitalized; //更新中间库 _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData); //保存入院数据 infoData.IsSave = true; _serviceBasicService.GetInpatientInfo(infoData); return(registerData); }