/// <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);
        }