Example #1
0
        /// <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);
        }
Example #2
0
        /// <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();
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        /// <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);
            //}
        }
Example #7
0
        /// <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);
            }
        }
Example #8
0
        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);
            }
        }