/// <summary> /// Main function for all report generators that handles the worfkow for each report generator that derives from the BaseReportGenerator class. /// </summary> /// <param name="website">The website object used to generate reporting website.</param> /// <param name="publishTask">The publish task. This parameter is optional with the default value being PublishTask.Full</param> public override void GenerateReport(Website website, PublishTask publishTask = PublishTask.Full) { _publishTask = publishTask; // Call the base generator report first base.GenerateReport(website); }
/// <summary> /// Runs the tasks. /// </summary> private void RunTasks() { // need refactoring LogSectionHeader("Database Installation"); DBTask dbTask = new DBTask(); if (dbTask.Validate()) { dbTask.Execute(); } LogSectionHeader("Reports Installation"); PublishTask publishTask = new PublishTask(); if (publishTask.Validate()) { publishTask.Execute(); } LogSectionHeader("BinaryFiles Installation"); PublishBinaryFilesTask publishBinaryFilesTask = new PublishBinaryFilesTask(); if (publishBinaryFilesTask.Validate()) { publishBinaryFilesTask.Execute(); } }
private void RunPublishTask(List <CombinePublish> list) { LoggingInfo log = new LoggingInfo(); log.LoggWebThread(LoggingInfo.ActionId.IDEEnd, project.ProjectName); if ((!MainClass.Workspace.SignApp)) { TaskList tlpublish = new TaskList(); tlpublish.TasksList = new System.Collections.Generic.List <Moscrif.IDE.Task.ITask>(); PublishTask pt = new PublishTask(); pt.ParentWindow = this; pt.Initialize(list); tlpublish.TasksList.Add(pt); MainClass.MainWindow.RunTaskList(tlpublish, true); } else { if (MainClass.User == null) { LoginRegisterDialog ld = new LoginRegisterDialog(this); int res = ld.Run(); if (res == (int)Gtk.ResponseType.Cancel) { ld.Destroy(); return; } ld.Destroy(); } TaskList tl = new TaskList(); tl.TasksList = new System.Collections.Generic.List <Moscrif.IDE.Task.ITask>(); SignPublishTask ct = new SignPublishTask(); ct.Initialize(list); ct.ParentWindow = this; tl.TasksList.Add(ct); MainClass.MainWindow.RunTaskList(tl, false); } }
/// <summary> /// 发布信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void backgroundWorker_Send_DoWork(object sender, DoWorkEventArgs e) { try { this.btnSave.Invoke(new MethodInvoker(delegate() { this.Save_CheckBoxList(); int num = 0; for (int i = 0; i < checkedListBox_WebSiteClassList.Items.Count; i++) { if (checkedListBox_WebSiteClassList.GetItemChecked(i)) { num++; ModelWebSiteChecked model = (ModelWebSiteChecked)this.checkedListBox_WebSiteClassList.Items[0]; string[] ArrValue = model.Value.Split(new string[] { "→" }, StringSplitOptions.None); WebSiteHelper ModelSite = Common.GetList <WebSiteHelper>(p => p.Uuid == ArrValue[1]).SingleOrDefault(); string[] ArrClassName = model.Name.Split(new string[] { "→" }, StringSplitOptions.None); ListItem LiClassList = new ListItem(ArrValue[2], ArrClassName[2]); PublishTask PublishTask = new PublishTask(); PublishTask.PublishOP = PublishOP; PublishTask.CommonSendContent(ModelSite, this.Title, this.Content, LiClassList.Text, LiClassList.Value); } } if (num == 0) { if (MessageBox.Show("你没有选择一个选择保存文章!确定要这样!", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK) { this.Close(); this.Dispose(); } } else { this.Close(); this.Dispose(); } })); } catch (Exception ex) { MessageBox.Show("文章发布出错!" + ex.Message + ex.InnerException + ex.StackTrace + ex.Source, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); Log4Helper.Write(LogLevel.Error, ex); } }
public IPublisherSettings Create(PublishTask publishTask) { return new PublisherSettings(publishTask.SkipUnchangedFiles); }
/// <summary> /// Generates the report. /// </summary> /// <param name="website">The website.</param> /// <param name="publishTask">The publish task.</param> public override void GenerateReport(Website website, PublishTask publishTask) { //base.GenerateReport(website); if (publishTask == PublishTask.PreviewOnly) { // Do nothing for previews return; } //var configService = ServiceLocator.Current.GetInstance<IConfigurationService>(); CurrentWebsite = website; //foreach (WebsiteDataset dataSet in website.Datasets) //{ // switch (dataSet.Dataset.ContentType.Name) // { // case "Inpatient Discharge": // datasetRecord = dataSet.Dataset.Id; // break; // default: // break; // } //} decimal suppression = GetSuppression("IP-12"); var regionRateMeasure = CurrentWebsite.Measures.Where(m => m.ReportMeasure.Name.Equals("IP-15")).FirstOrNull(); var scale = regionRateMeasure == null ? 1000 : (((WebsiteMeasure)regionRateMeasure).ReportMeasure.ScaleBy ?? 1000); //string regionType = configService.HospitalRegion.SelectedRegionType.Name; string regionSource = ""; switch (CurrentWebsite.RegionTypeContext) { case "HealthReferralRegion": //regionType = "HealthReferralRegion_Id"; regionSource = "HRRRegionID"; break; case "HospitalServiceArea": //regionType = "HospitalServiceArea_Id"; regionSource = "HSARegionID"; break; case "CustomRegion": //regionType = "CustomRegion_Id"; regionSource = "CustomRegionID"; break; } var ipDatasets = website.Datasets.Where(d => d.Dataset.ContentType.Name == "Inpatient Discharge"); foreach (var dataset in ipDatasets) { LogMessage(String.Format("Generating {0} Report Data for year {1}", "Region", dataset.Dataset.ReportingYear)); var datasetRecord = dataset.Dataset.Id; try { var process = new Process(); var psi = new ProcessStartInfo(); const string fileName = @"Modules\Generators\RegionGenerator\RegionGenerator.exe"; if (!File.Exists(fileName)) { return; } psi.FileName = fileName; psi.UseShellExecute = false; psi.CreateNoWindow = true; psi.RedirectStandardOutput = true; psi.Arguments = string.Format( "-d \"{0}\" -c \"{1}\" -wid \"{2}\" -i {3} -s {4} -r {5} -l 1 -scale {6} -y {7} -dy {8} -o {9}", Path.Combine(website.OutPutDirectory, "Data", "Region", dataset.Dataset.ReportingYear), MonahrqConfiguration.SettingsGroup.MonahrqSettings().EntityConnectionSettings.ConnectionString, CurrentWebsite.Id, datasetRecord, suppression, regionSource, scale, CurrentWebsite.ReportedYear, dataset.Dataset.ReportingYear, (website.UtilizationReportCompression.HasValue && website.UtilizationReportCompression.Value)); process.StartInfo = psi; process.Start(); do { var logMessage = process.StandardOutput.ReadLineAsync().Result; if (!string.IsNullOrEmpty(logMessage)) { LogMessage(logMessage); } } while (!process.HasExited); process.Close(); var tempPath = Path.GetTempPath() + "Monahrq\\Generators\\RegionGenerator\\"; if (Directory.Exists(tempPath)) { Directory.Delete(tempPath, true); } } catch (Exception) { throw; } } //return; // This is the one that should be called first. //try //{ // if (publishTask == PublishTask.PreviewOnly) // { // // Do nothing for previews // return; // } // // Start the timer. // DateTime groupStart = DateTime.Now; // base.GenerateReport(website); // // Initialize the data for this report. // InitializeReportData(); // // Make sure the base directories are created. // CreateBaseDirectories(); // // Generate the json files for the report. // // Generate paths // GenerateDimensionPath("DRG"); // GenerateDimensionPath("MDC"); // GenerateDimensionPath("DXCCS"); // GenerateDimensionPath("PRCCS"); // // Write out the complete time for generation. // Logger.Write(string.Format("Utilization Region - Generation completed in {0:c}", DateTime.Now - groupStart)); //} //catch (Exception ex) //{ // Logger.Write(ex); //} }
/// <summary> /// Generates the json files. /// </summary> /// <param name="publishTask">The publish task.</param> public void GenerateJsonFiles(PublishTask publishTask) { try { // Generate any report specific json files // Get the measure topics, topic categories and detailed information about the measure (national and peer data, popup help, measure details, etc.) if (!File.Exists(Path.Combine(_baseMeasuresDir, "Topics.js"))) { GenerateJsonFile(RunSprocReturnDataTable("spQualityGetMeasureTopics", new KeyValuePair <string, object>("@ReportID", _reportID)), Path.Combine(_baseMeasuresDir, "Topics.js"), jsonDomain + ".measuretopics="); } if (!File.Exists(Path.Combine(_baseMeasuresDir, "TopicCategories.js"))) { GenerateJsonFile(RunSprocReturnDataTable("spQualityGetMeasureTopicCategories", new KeyValuePair <string, object>("@ReportID", _reportID)), Path.Combine(_baseMeasuresDir, "TopicCategories.js"), jsonDomain + ".measuretopiccategories="); } if (!File.Exists(Path.Combine(_baseMeasuresDir, "TopicsConsumer.js"))) { GenerateJsonFile(RunSprocReturnDataTable("spQualityGetMeasureTopics", new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@AudienceType", "consumer") }), Path.Combine(_baseMeasuresDir, "TopicsConsumer.js"), jsonDomain + ".measuretopics_consumer="); } if (!File.Exists(Path.Combine(_baseMeasuresDir, "TopicCategoriesConsumer.js"))) { var topicCategories = GetMeasureTopicCategories(new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@IsCostQualityIncluded", CurrentWebsite.Reports.Any(x => x.Report.Name.EqualsIgnoreCase("Cost and Quality Report – Side By Side Display")) && CurrentWebsite.Measures.Any(m => m.ReportMeasure.SupportsCost))); GenerateJsonFile(topicCategories, Path.Combine(_baseMeasuresDir, "TopicCategoriesConsumer.js"), jsonDomain + ".measuretopiccategories_consumer="); } if (publishTask == PublishTask.PreviewOnly) { return; } foreach (DataRow row in _measures.Rows) { if (File.Exists(Path.Combine(_baseMeasuresDir, "Measure_" + row["ID"] + ".js"))) { continue; } var result = RunSprocReturnDataTable("spQualityGetMeasure", new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@MeasureID", row["ID"]) }); if (result.Rows.Count < 1) { continue; } GenerateJsonFile(result, Path.Combine(_baseMeasuresDir, "Measure_" + row["ID"] + ".js"), jsonDomain + ".measuredescription_" + row["ID"] + "="); } // Get the quality data by hospital. foreach (DataRow row in HospitalIds.Rows) { var hospitalDataTable = RunSprocReturnDataTable("spQualityGetDataByHospital", new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@HospitalID", row["ID"]) }); GenerateJsonFile(hospitalDataTable, Path.Combine(_qualityHospitalDataDir, "hospital_" + row["ID"] + ".js"), jsonDomain + ".hospital_" + row["ID"] + "="); } // Get the quality data by measure. foreach (DataRow row in _measures.Rows) { DataTable measureDataTable = RunSprocReturnDataTable("spQualityGetDataByMeasure", new[] { new KeyValuePair <string, object>("@ReportID", _reportID), new KeyValuePair <string, object>("@MeasureID", row["ID"]) }); GenerateJsonFile(measureDataTable, Path.Combine(_qualityMeasureDataDir, "measure_" + row["ID"] + ".js"), jsonDomain + ".measure_" + row["ID"] + "="); //if (measureDataTable.Rows.Count > 0) //{ // var currentWebsiteMeasure = CurrentWebsite.Measures.Where(m => m.ReportMeasure.Id > 0 && m.ReportMeasure.Id == (int)row["ID"]).Select(m => m).FirstOrDefault(); // QualityReportSuppressionLogic.Suppress(measureDataTable, currentWebsiteMeasure); // GenerateJsonFile(measureDataTable, Path.Combine(QualityMeasureDataDir, "measure_" + row["ID"] + ".js"), jsonDomain + ".measure_" + row["ID"] + "="); //} } } catch (Exception ex) { Logger.Write(ex); } }
private void RunPublishTask(List<CombinePublish> list) { LoggingInfo log = new LoggingInfo(); log.LoggWebThread(LoggingInfo.ActionId.IDEEnd,project.ProjectName); if((!MainClass.Workspace.SignApp) ){ TaskList tlpublish = new TaskList(); tlpublish.TasksList = new System.Collections.Generic.List<Moscrif.IDE.Task.ITask>(); PublishTask pt = new PublishTask(); pt.ParentWindow = this; pt.Initialize(list); tlpublish.TasksList.Add(pt); MainClass.MainWindow.RunTaskList(tlpublish,true); } else { if(MainClass.User == null){ LoginRegisterDialog ld = new LoginRegisterDialog(this); int res = ld.Run(); if (res == (int)Gtk.ResponseType.Cancel){ ld.Destroy(); return; } ld.Destroy(); } TaskList tl = new TaskList(); tl.TasksList = new System.Collections.Generic.List<Moscrif.IDE.Task.ITask>(); SignPublishTask ct = new SignPublishTask(); ct.Initialize(list); ct.ParentWindow = this; tl.TasksList.Add(ct ); MainClass.MainWindow.RunTaskList(tl,false); } }