/// <summary> /// Gets the infograhic topics. /// </summary> /// <returns></returns> private IList <InfographicTopic> GetInfograhicTopics() { IList <InfographicTopic> topics = new List <InfographicTopic>(); NHibernate.IQuery query = null; var activeSections = GetActiveSections(ActiveReport, CurrentWebsite.Datasets); // Retrieve CMS Zone data from DB. using (var session = DataProvider.SessionFactory.OpenSession()) { var infectionTopicCategoryId = session.Query <TopicCategory>().SingleOrDefault(tc => tc.Name.Contains("Infections")).Id; query = session .CreateSQLQuery(sqlGetData) .SetResultTransformer(Transformers.AliasToBean(typeof(InfographicTopicDTO))); var topicDTOs = query.List <InfographicTopicDTO>(); foreach (var topicDTO in topicDTOs) { var topic = topics.FirstOrDefault(t => t.TopicCategory == topicDTO.TopicCategory); if (topic == null) { topic = new InfographicTopic() { RegionName = CurrentWebsite.GeographicDescription, SiteName = CurrentWebsite.HeaderTitle, SiteUrl = CurrentWebsite.HeaderTitle, ActiveSections = activeSections, TopicCategory = topicDTO.TopicCategory, }; topics.Add(topic); } if (topic.Measures.Count >= 2) { continue; } if (topicDTO.TopicCategory == infectionTopicCategoryId) { var num = topicDTO.MeasureValue.AsNullableDouble(); if (num != null && num.HasValue) { topicDTO.MeasureValue = num.Value.ToString("F1"); } } topic.Measures.Add(new InfographicMeasure() { Name = topicDTO.MeasureName, Values = new List <String>() { String.Format("{0}", QualityReportPostProcessLogic.FormatMeasureValue(topicDTO.MeasureName, topicDTO.MeasureValue.ToString())) }, // Values = new List<String>() { String.Format("{0}",topicDTO.MeasureValue.ToString()) } }); } } return(topics); }
/// <summary> /// Initializes the report data. /// </summary> private void InitializeReportData() { try { // Make sure the base directories are created. CreateBaseDirectories(); #if DEBUG LogMessage("Initializing report data"); #endif #region Get base information about the website - hospitals, measures, datasets, etc. _reportID = Guid.NewGuid().ToString(); _measures = new DataTable(); _measures.Columns.Add("ID", typeof(int)); foreach (WebsiteMeasure measure in CurrentWebsite.Measures.Where(m => m.IsSelected).ToList()) { //if (measure.IsSelected) //{ _measures.Rows.Add(measure.ReportMeasure.Id); //} } //// Get the needed DataSets _hospitalCompareDatasetIDs = new DataTable(); _hospitalCompareDatasetIDs.Columns.Add("ID", typeof(int)); _qIDatasetIDs = new DataTable(); _qIDatasetIDs.Columns.Add("ID", typeof(int)); foreach (WebsiteDataset dataSet in CurrentWebsite.Datasets) { switch (dataSet.Dataset.ContentType.Name) { case "Hospital Compare Data": // Add a new Hospital Compare dataset _hospitalCompareDatasetIDs.Rows.Add(dataSet.Dataset.Id); break; case "AHRQ-QI Area Data": case "AHRQ-QI Composite Data": case "AHRQ-QI Provider Data": // Add a new AHRQ QI dataset _qIDatasetIDs.Rows.Add(dataSet.Dataset.Id); break; } } var hcParams = new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@HospitalCompareDataset", _hospitalCompareDatasetIDs), new KeyValuePair <string, object>("@Hospitals", HospitalIds), new KeyValuePair <string, object>("@Measures", _measures), new KeyValuePair <string, object>("@RegionType", CurrentWebsite.RegionTypeContext) }; //Clean Temp_Quality Table ExecuteNonQuery("IF (OBJECT_ID(N'Temp_Quality')) IS NOT NULL TRUNCATE Table Temp_Quality"); RunSproc("spQualityInitializeHCBinary", "", hcParams); RunSproc("spQualityInitializeHCCategorical", "", hcParams); RunSproc("spQualityInitializeHCOutcome", "", hcParams); RunSproc("spQualityInitializeHCProcess", "", hcParams); RunSproc("spQualityInitializeHCRatio", "", hcParams); RunSproc("spQualityInitializeHCScale", "", hcParams); RunSproc("spQualityInitializeHCStructural", "", hcParams); RunSproc("spQualityInitializeHCYNM", "", hcParams); var qiParams = new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@QIDataset", _qIDatasetIDs), new KeyValuePair <string, object>("@Hospitals", HospitalIds), new KeyValuePair <string, object>("@Measures", _measures), new KeyValuePair <string, object>("@RegionType", CurrentWebsite.RegionTypeContext) }; RunSproc("spQualityInitializeQIComposite", "", qiParams); RunSproc("spQualityInitializeQIProvider", "", qiParams); RunSproc("spQualityInitializeQIProviderMCMC", "", qiParams); RunSproc("spQualityInitializeQIVolume", "", qiParams); QualityReportPostProcessLogic.PostProcessQualityReport(_reportID, CurrentWebsite, DataserviceProvider); #endregion } catch (Exception ex) { Logger.Write(ex); } }