public void TestGetGroupDataProcessed_ForCategoryArea() { var areaCode = CategoryArea.New(CategoryTypeIds.DeprivationDecileCountyAndUA2010, 1).Code; var groupData = new GroupDataAtDataPointRepository().GetGroupDataProcessed(areaCode, AreaTypeIds.CountyAndUnitaryAuthority, ProfileIds.Phof,GroupIds.Phof_WiderDeterminantsOfHealth); Assert.IsNotNull(groupData.GroupRoots); }
public void TestGetGroupDataProcessed_ForNearestNeighbour() { var areaCode = NearestNeighbourArea.CreateAreaCode( NearestNeighbourTypeIds.Cipfa, AreaCodes.CountyUa_Cambridgeshire); var groupData = new GroupDataAtDataPointRepository().GetGroupDataProcessed(areaCode, AreaTypeIds.CountyAndUnitaryAuthority, ProfileIds.Phof, GroupIds.Phof_WiderDeterminantsOfHealth); // Check group roots are defined var groupRoots = groupData.GroupRoots; Assert.IsNotNull(groupRoots); // Check expected number of data points var count = groupRoots[0].Data.Count; Assert.IsTrue(count > 10 && count < 20); }
public IList<TrendRoot> GetTrendData() { var parentArea = new ParentArea(_parameters.ParentAreaCode, _parameters.AreaTypeId); bool isParentCodeNearestNeighbour = Area.IsNearestNeighbour(_parameters.ParentAreaCode); var groupData = new GroupDataAtDataPointRepository().GetGroupData(_parameters.ParentAreaCode, _parameters.AreaTypeId, _parameters.ProfileId, _parameters.GroupId); IList<TrendRoot> trendRoots = new TrendRootBuilder().Build( groupData.GroupRoots, new ComparatorMapBuilder(parentArea).ComparatorMap, _parameters.AreaTypeId, _parameters.ProfileId, groupData.IndicatorMetadata, isParentCodeNearestNeighbour); return trendRoots; }
protected List<DomainData> BuildDomainDataForProfile(int profileId, int childAreaTypeId, IList<string> benchmarkAreaCodes) { var dataList = new List<DomainData>(); var groupIds = new GroupIdProvider(profileReader).GetGroupIds(profileId); var groupMetadataList = groupDataReader.GetGroupMetadataList(groupIds); var groupDataRepository = new GroupDataAtDataPointRepository { AssignAreas = false, AssignChildAreaData = false }; var benchmarkAreas = ReaderFactory.GetAreasReader().GetAreasFromCodes(benchmarkAreaCodes); foreach (var groupMetadata in groupMetadataList) { var tableData = NewDomainData(); var groupId = groupMetadata.Id; tableData.DomainTitle = groupMetadata.Name; tableData.GroupId = groupId; var groupData = groupDataRepository.GetGroupData(AreaCodes.England, childAreaTypeId, profileId, groupId); var groupRoots = groupData.GroupRoots; foreach (var groupRoot in groupRoots) { var metadata = groupData.GetIndicatorMetadataById(groupRoot.IndicatorId); AddIndicatorData(groupRoot, metadata, benchmarkAreas); } dataList.Add(tableData); } return dataList; }
public List<CoreDataSet> GetGroupDataAtDataPointOfSpecificAreas(string area_code, int area_type_id, int profile_id, int group_id) { IAreasReader areasReader = ReaderFactory.GetAreasReader(); try { IArea parentArea = (area_code == AreaCodes.England) ? AreaFactory.NewArea(areasReader, area_code) : areasReader.GetParentAreas(area_code).First(); GroupData data = new GroupDataAtDataPointRepository().GetGroupDataProcessed(parentArea.Code, area_type_id, profile_id, group_id); IList<GroupRoot> roots = data.GroupRoots; var dataForArea = new List<CoreDataSet>(); foreach (GroupRoot groupRoot in roots) { CoreDataSet coreData; if (parentArea.IsCountry) { coreData = groupRoot.GetNationalGrouping().ComparatorData; } else { IList<CoreDataSet> dataList = groupRoot.Data; coreData = dataList.FirstOrDefault(x => x.AreaCode == area_code); } dataForArea.Add(coreData); } return dataForArea; } catch (Exception ex) { Log(ex); throw; } }
private void InitSupportingGroupData(int areaTypeId) { // Supporting data const int profileId = ProfileIds.HealthProfilesSupportingIndicators; int supportingGroupId = new GroupIdProvider(profileReader).GetGroupIds(profileId)[0]; GroupData groupData = new GroupDataAtDataPointRepository { AssignChildAreaData = false, AssignAreas = false }.GetGroupData(benchmarkAreaCode,areaTypeId, profileId, supportingGroupId); groupRootSelector.SupportingGroupRoots = groupData.GroupRoots; indicatorMetadataCollection.AddIndicatorMetadata(groupData.IndicatorMetadata); }
private void InitMainGroupData(int areaTypeId) { const int profileId = ProfileIds.HealthProfiles; GroupData groupDataForSpineChart = new GroupDataAtDataPointRepository { AssignChildAreaData = false, AssignAreas = false }.GetGroupData(benchmarkAreaCode, areaTypeId, profileId, GroupIds.HealthProfiles_AllSpineChartIndicators); indicatorMetadataCollection.AddIndicatorMetadata(groupDataForSpineChart.IndicatorMetadata); groupRootSelector.MainGroupRoots = groupDataForSpineChart.GroupRoots; }
public LongerLivesAreaDetails GetAreaDetails(int profileId, int groupId, int childAreaTypeId, string areaCode) { area = AreaFactory.NewArea(areasReader, areaCode); indicatorComparerFactory = new IndicatorComparerFactory { PholioReader = ReaderFactory.GetPholioReader() }; var parentCodeToRanks = new Dictionary<string, List<AreaRankGrouping>>(); var parentCodeToSignificances = new Dictionary<string, List<int?>>(); var parentCodeToBenchmarks = new Dictionary<string, object>(); InitIgnoredAreaCodes(profileId); // Set up parent areas Area country = areasReader.GetAreaFromCode(AreaCodes.England); var parentAreas = new List<IArea> { country }; AddOnsClusterToParentAreas(childAreaTypeId, area, parentAreas); Decile decile = GetDecile(parentAreas, childAreaTypeId, areaCode); var isParentArea = IsParentArea(area); foreach (IArea parentArea in parentAreas) { string parentAreaCode = parentArea.Code; GroupData groupData = new GroupDataAtDataPointRepository().GetGroupDataProcessed( parentAreaCode, childAreaTypeId, profileId, groupId); var rankBuilder = new AreaRankBuilder { GroupDataReader = groupDataReader, AreasReader = areasReader, Area = area }; var ranks = new List<AreaRankGrouping>(); var significances = new List<int?>(); var benchmarks = new List<CoreDataSet>(); parentCodeToRanks.Add(parentAreaCode, ranks); foreach (GroupRoot groupRoot in groupData.GroupRoots) { Grouping grouping = GetGrouping(parentArea, groupRoot); // Get data list IndicatorMetadata metadata = groupData.GetIndicatorMetadataById(grouping.IndicatorId); TimePeriod timePeriod = TimePeriod.GetDataPoint(grouping); IList<CoreDataSet> childAreaDataList = GetChildAreaDataList(parentArea, groupRoot, grouping, timePeriod); var areaRankGrouping = rankBuilder.BuildRank(grouping, metadata, timePeriod, childAreaDataList); ranks.Add(areaRankGrouping); // Area significance if (areaRankGrouping != null && isParentArea == false) { var significance = GetSignificance(areaCode, groupRoot, grouping, childAreaDataList); significances.Add(significance); } else { significances.Add(null); } benchmarks.Add(grouping.ComparatorData); } parentCodeToSignificances.Add(parentAreaCode, significances); parentCodeToBenchmarks.Add(parentAreaCode, benchmarks); } string url = null; if (isParentArea) { // Significances not relevant for parent areas parentCodeToSignificances = null; parentCodeToBenchmarks = null; } else { // Only need area web site link for child areas url = areasReader.GetAreaUrl(area.Code); } // Bespoke response object return new LongerLivesAreaDetails { Area = area, Decile = decile, Url = url, Ranks = parentCodeToRanks, Significances = parentCodeToSignificances, Benchmarks = parentCodeToBenchmarks }; }