public async Task <ApiJsonResultData> GetCatalog([FromQuery] UiCatalogParam param)
        {
            return(await new ApiJsonResultData().RunWithTryAsync(async y =>
            {
                var userBase = await GetUserBaseInfo();
                if (userBase != null)
                {
                    var inputInpatientInfo = new CatalogParam()
                    {
                        验证码 = userBase.验证码,
                        CatalogType = param.CatalogType,
                        机构编码 = userBase.机构编码,
                        条数 = 500,
                    };


                    var inputInpatientInfoData = await _webServiceBasicService.GetCatalog(userBase, inputInpatientInfo);
                    if (inputInpatientInfoData.Any())
                    {
                        y.Data = inputInpatientInfoData;
                    }
                }

                //var data = await webService.ExecuteSp(param.Params);
            }));
        }
        public ActionResult UpdateBaseDirectory(string directoryType)
        {
            string resultData = "";
            var    loginInfo  = OperatorProvider.Provider.GetCurrent();
            var    user       = userApp.GetForm(loginInfo.UserId);

            if (user.F_IsHisAccount == false)
            {
                throw new Exception("非基层认证人员不能更新基层目录");
            }


            var userBase = _webServiceBasicService.GetUserBaseInfo(user.F_HisUserId);

            if (userBase != null)
            {
                var inputInpatientInfo = new CatalogParam()
                {
                    AuthCode         = userBase.AuthCode,
                    CatalogType      = (CatalogTypeEnum)Convert.ToInt16(directoryType),
                    OrganizationCode = userBase.OrganizationCode,
                    Nums             = 1000,
                };
                resultData = _webServiceBasicService.GetCatalog(userBase, inputInpatientInfo);
            }

            return(Success(resultData));
        }
        /// <summary>
        /// 3.4 获取三大目录
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public string GetCatalog(UserInfoDto user, CatalogParam param)
        {
            var time = _hisSqlRepository.GetTime(Convert.ToInt16(param.CatalogType));

            _hisSqlRepository.DeleteCatalog(user, Convert.ToInt16(param.CatalogType));
            var timeNew = Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:ss:mm") ??
                          DateTime.Now.AddYears(-40).ToString("yyyy-MM-dd HH:ss:mm");
            var oCatalogInfo = new CatalogInfoDto
            {
                目录类型 = Convert.ToInt16(param.CatalogType).ToString(),
                目录名称 = "",
                开始时间 = timeNew,
                结束时间 = DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm"),
                验证码  = param.AuthCode,
                机构编码 = param.OrganizationCode,
            };
            var data = _webServiceBasic.HIS_InterfaceList("06", JsonConvert.SerializeObject(oCatalogInfo));
            List <ListCount> nums;
            var init = new ListCount();

            nums = GetResultData(init, data);
            var cnt = Convert.ToInt32(nums?.FirstOrDefault()?.行数);
            var resultCatalogDtoList = new List <CatalogDto>();
            var i = 0;

            while (i < cnt)
            {
                oCatalogInfo.开始行数 = i;
                oCatalogInfo.结束行数 = i + param.Nums;
                var catalogDtoData =
                    _webServiceBasic.HIS_InterfaceList("05", JsonConvert.SerializeObject(oCatalogInfo));
                List <CatalogDto> resultCatalogDto;
                var initCatalogDto = new CatalogDto();
                resultCatalogDto = GetResultData(initCatalogDto, catalogDtoData);
                if (resultCatalogDto.Any())
                {
                    resultCatalogDtoList.AddRange(resultCatalogDto);
                }

                if (resultCatalogDto.Count > 1) //排除单条更新
                {
                    _hisSqlRepository.AddCatalog(user, resultCatalogDto, param.CatalogType);
                }


                i = i + param.Nums;
            }

            Int64 allNum = resultCatalogDtoList.Count() == 1 ? 0 : resultCatalogDtoList.Count();

            return("下载【" + param.CatalogType + "】成功 共" + allNum.ToString() + "条记录");
        }
        /// <summary>
        /// 获取ICD-10
        /// </summary>
        /// <param name="verCode"></param>
        /// <param name="code"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public string GetIcd10(UserInfoDto user, CatalogParam param)
        {
            var time    = _hisSqlRepository.GetICD10Time();
            var timeNew = Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:ss:mm") ??
                          DateTime.Now.AddYears(-40).ToString("yyyy-MM-dd HH:ss:mm");
            var rowParam = new ICD10InfoRowParam
            {
                开始时间 = timeNew,
                结束时间 = DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm"),
                验证码  = param.AuthCode,
                疾病类别 = 0,
                病种名称 = ""
            };
            var oICD10Info = new ICD10InfoParam
            {
                开始时间 = timeNew,
                结束时间 = DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm"),
                验证码  = param.AuthCode,
                疾病类别 = 0,
                病种名称 = ""
            };
            var data = _webServiceBasic.HIS_InterfaceList("08",
                                                          Newtonsoft.Json.JsonConvert.SerializeObject(rowParam));
            List <ListCount> nums;
            var init = new ListCount();

            nums = GetResultData(init, data);
            var cnt = Convert.ToInt32(nums?.FirstOrDefault()?.行数);
            var resultCatalogDtoList = new List <ICD10InfoDto>();
            var i = 0;

            while (i < cnt)
            {
                oICD10Info.开始行数 = i;
                oICD10Info.结束行数 = i + param.Nums;
                var catalogDtoData =
                    _webServiceBasic.HIS_InterfaceList("07", JsonConvert.SerializeObject(oICD10Info));
                List <ICD10InfoDto> resultCatalogDto;
                var initCatalogDto = new ICD10InfoDto();
                resultCatalogDto = GetResultData(initCatalogDto, catalogDtoData);
                if (resultCatalogDto.Any())
                {
                    resultCatalogDtoList.AddRange(resultCatalogDto);
                    _hisSqlRepository.AddICD10(resultCatalogDto, user);
                    i = i + param.Nums;
                }
            }

            return("下载【ICD10】成功 共" + resultCatalogDtoList.Count() + "条记录");
        }
        public CatalogResult Catalog([FromUri] CatalogParam param)
        {
            if (param == null)
            {
                throw new System.ArgumentNullException("param");
            }

            if (param.dp != null)
            {
                param.d = null;
            }

            WebPartner partner = UserToolsProvider.GetPartner(param);

            if (!param.StartPoint.HasValue && param.StartPointAlias != null)
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            ExcursionProvider.ExcursionSorting sorting = (!string.IsNullOrEmpty(param.SortOrder)) ? ((ExcursionProvider.ExcursionSorting)System.Enum.Parse(typeof(ExcursionProvider.ExcursionSorting), param.SortOrder)) : ExcursionProvider.ExcursionSorting.name;

            //получить id экскурсий в регионе

            //фильтровать по id

            CatalogResult result = new CatalogResult();

            result.excursions = ExcursionProvider.FindExcursions(param.Language, partner.id, param.FirstDate, param.LastDate, param.SearchLimit, param.StartPoint, param.SearchText, param.Categories, param.Departures, (param.Destinations != null && param.Destinations.Length > 0) ? param.Destinations : (param.DestinationState.HasValue ? new int[]
            {
                param.DestinationState.Value
            } : null), param.ExcursionLanguages, param.MinDuration, param.MaxDuration, new ExcursionProvider.ExcursionSorting?(sorting), param.WithoutPrice);
            System.Collections.Generic.Dictionary <int, ExcursionRank> rankings = SurveyProvider.GetExcursionsRanking((
                                                                                                                          from m in result.excursions
                                                                                                                          select m.excursion.id).ToList <int>(), param.Language);

            foreach (CatalogExcursionMinPrice excursion in result.excursions)
            {
                ExcursionRank rank = null;
                if (rankings.TryGetValue(excursion.excursion.id, out rank))
                {
                    excursion.ranking = CatalogExcursionRanking.Create(rank, param.Language);
                }
            }
            return(result);
        }
        /// <summary>
        /// 3.4 获取三大目录
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public async Task <string> GetCatalog(UserInfoDto user, CatalogParam param)
        {
            var time = await _dataBaseHelpService.GetTime(Convert.ToInt16(param.CatalogType));

            var timeNew      = Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:ss:mm") ?? DateTime.Now.AddYears(-40).ToString("yyyy-MM-dd HH:ss:mm");
            var oCatalogInfo = new CatalogInfoDto
            {
                目录类型 = Convert.ToInt16(param.CatalogType).ToString(),
                目录名称 = "",
                开始时间 = timeNew,
                结束时间 = DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm"),
                验证码  = param.验证码,
                机构编码 = param.机构编码,
            };
            var data = await _webServiceBasic.HIS_InterfaceListAsync("06", JsonConvert.SerializeObject(oCatalogInfo), user.职员ID);

            List <ListCount> nums;
            var init = new ListCount();

            nums = GetResultData(init, data);
            var cnt = Convert.ToInt32(nums?.FirstOrDefault()?.行数);
            var resultCatalogDtoList = new List <CatalogDto>();
            var i = 0;

            while (i < cnt)
            {
                oCatalogInfo.开始行数 = i;
                oCatalogInfo.结束行数 = i + param.条数;
                var catalogDtoData = await _webServiceBasic.HIS_InterfaceListAsync("05", JsonConvert.SerializeObject(oCatalogInfo), user.职员ID);

                List <CatalogDto> resultCatalogDto;
                var initCatalogDto = new CatalogDto();
                resultCatalogDto = GetResultData(initCatalogDto, catalogDtoData);
                if (resultCatalogDto.Any())
                {
                    resultCatalogDtoList.AddRange(resultCatalogDto);
                }
                await _dataBaseHelpService.AddCatalog(user, resultCatalogDto, param.CatalogType);

                i = i + param.条数;
            }
            return("下载【" + param.CatalogType + "】成功 共" + resultCatalogDtoList.Count() + "条记录");
        }
        /// <summary>
        /// 获取ICD-10
        /// </summary>
        /// <param name="verCode"></param>
        /// <param name="code"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public async Task <string> GetICD10(UserInfoDto user, CatalogParam param)
        {
            var time = await _dataBaseHelpService.GetICD10Time();

            var timeNew    = Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:ss:mm") ?? DateTime.Now.AddYears(-40).ToString("yyyy-MM-dd HH:ss:mm");
            var oICD10Info = new ICD10InfoParam
            {
                开始时间 = timeNew,
                结束时间 = DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm"),
                验证码  = param.验证码,
                病种名称 = ""
            };
            var data = await _webServiceBasic.HIS_InterfaceListAsync("08", Newtonsoft.Json.JsonConvert.SerializeObject(oICD10Info), user.职员ID);

            List <ListCount> nums;
            var init = new ListCount();

            nums = GetResultData(init, data);
            var cnt = Convert.ToInt32(nums?.FirstOrDefault()?.行数);
            var resultCatalogDtoList = new List <ICD10InfoDto>();
            var i = 0;

            while (i < cnt)
            {
                oICD10Info.开始行数 = i;
                oICD10Info.结束行数 = i + param.条数;
                var catalogDtoData = await _webServiceBasic.HIS_InterfaceListAsync("07", JsonConvert.SerializeObject(oICD10Info), user.职员ID);

                List <ICD10InfoDto> resultCatalogDto;
                var initCatalogDto = new ICD10InfoDto();
                resultCatalogDto = GetResultData(initCatalogDto, catalogDtoData);
                if (resultCatalogDto.Any())
                {
                    resultCatalogDtoList.AddRange(resultCatalogDto);
                    await _dataBaseHelpService.AddICD10(resultCatalogDto);

                    i = i + param.条数;
                }
            }
            return("下载【ICD10】成功 共" + resultCatalogDtoList.Count() + "条记录");
        }