private void SetGroupItems(GroupingOptionsCtrl.Grouping CurGrouping) { switch (CurGrouping) { case GroupingOptionsCtrl.Grouping.provider: graph.UseBuiltInColors = false; graph.LegendTitle = "Provider"; break; case GroupingOptionsCtrl.Grouping.clinic: graph.LegendTitle = "Clinic"; graph.UseBuiltInColors = true; break; default: graph.LegendTitle = "Group"; graph.UseBuiltInColors = true; break; } }
private GraphQuantityOverTime.GraphDataPointClinic GetDataPointForGrouping(GraphQuantityOverTime.GraphDataPointClinic x, GroupingOptionsCtrl.Grouping curGrouping) { switch (curGrouping) { case GroupingOptionsCtrl.Grouping.provider: return(new GraphQuantityOverTime.GraphDataPointClinic() { DateStamp = x.DateStamp, SeriesName = DashboardCache.Providers.GetProvName(x.ProvNum), Val = x.Val, Count = x.Count }); case GroupingOptionsCtrl.Grouping.clinic: default: return(new GraphQuantityOverTime.GraphDataPointClinic() { DateStamp = x.DateStamp, SeriesName = DashboardCache.Clinics.GetClinicName(x.ClinicNum), Val = x.Val, Count = x.Count }); } }
///<summary>Will add the pre-defined default clinics tab. ///Only one default clinics tab can exist at a time, but the user may rename it to add multiple. ///This method does NOT save the tab to the database. The user will still have to save changes and will have the option of discarding this tab.</summary> public void AddDefaultsTabByGrouping(bool hasPrompt, GroupingOptionsCtrl.Grouping grouping) { string strGrouping = char.ToUpper(grouping.ToString()[0]) + grouping.ToString().Substring(1); if (!ValidateTabName(strGrouping + " Defaults")) { return; } //get current layouts List <DashboardLayout> layoutsCur; GetDashboardLayout(out layoutsCur); //create layout DashboardLayout layout = new DashboardLayout() { DashboardColumns = 3, DashboardRows = 2, DashboardGroupName = "Default", DashboardTabName = strGrouping + " Defaults", //assigned default layout to first tab. DashboardTabOrder = layoutsCur.Count, UserGroupNum = 0, UserNum = 0, IsNew = true, }; int i = 0; for (int row = 0; row < layout.DashboardRows; row++) { for (int col = 0; col < layout.DashboardColumns; col++) { DashboardCell cell = new DashboardCell() { CellRow = row, CellColumn = col, }; switch (i++) { default: case 0: cell.CellType = DashboardCellType.ProductionGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping, IncludeCompleteProcs = true, IncludeAdjustements = true, IncludeWriteoffs = true, }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "Production - Last 12 Months", QtyType = OpenDentalGraph.Enumerations.QuantityType.money, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; case 1: cell.CellType = DashboardCellType.IncomeGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping, IncludePaySplits = true, IncludeInsuranceClaims = true, }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "Income - Last 12 Months", QtyType = OpenDentalGraph.Enumerations.QuantityType.money, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; case 2: cell.CellType = DashboardCellType.BrokenApptGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping, CurRunFor = BrokenApptGraphOptionsCtrl.RunFor.appointment, }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "Broken Appointments - Last 12 Months", QtyType = OpenDentalGraph.Enumerations.QuantityType.count, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; case 3: cell.CellType = DashboardCellType.ProductionGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping, IncludeCompleteProcs = true, IncludeAdjustements = true, IncludeWriteoffs = true, }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "Production - Last 30 Days", QtyType = OpenDentalGraph.Enumerations.QuantityType.money, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Days, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last30Days, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; case 4: cell.CellType = DashboardCellType.IncomeGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping, IncludePaySplits = true, IncludeInsuranceClaims = true, }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "Income - Last 30 Days", QtyType = OpenDentalGraph.Enumerations.QuantityType.money, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Days, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last30Days, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; case 5: cell.CellType = DashboardCellType.NewPatientsGraph; cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson() { FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings() { CurGrouping = grouping }), GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings() { Title = "New Patients - Last 12 Months", QtyType = OpenDentalGraph.Enumerations.QuantityType.count, SeriesType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn, GroupByType = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months, LegendDock = OpenDentalGraph.Enumerations.LegendDockType.Bottom, QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months, BreakdownPref = OpenDentalGraph.Enumerations.BreakdownType.items, BreakdownVal = 10, }) }); break; } layout.Cells.Add(cell); } } layoutsCur.Add(layout); //set dashboard tab control layouts SetDashboardLayout(layoutsCur, true); _hasUnsavedChanges = _hasUnsavedChanges || hasPrompt; }