Ejemplo n.º 1
0
			public TitleEnumerator(AttributionType par) 
			{
                this.SetSamplerState(0, SamplerStateparent = par;
                this.SetSamplerState(0, SamplerStatenIndex = -1;
			}
Ejemplo n.º 2
0
        public List <Program> GetReportPrograms(int contractId, int?measureTypeId, string groupIds)
        {
            List <Program> programs = new List <Program>();

            Contract contract = ContractService.Instance.GetContractById(contractId);

            DataSet dsReportFilters = QueryDataSet(contract.ConnectionString, contract.Database, StoredProcedure.GetProgramAndRelatedReportFilters, groupIds, measureTypeId);

            dsReportFilters.Tables[0].TableName = "Programs";
            dsReportFilters.Tables[1].TableName = "Groups";
            dsReportFilters.Tables[2].TableName = "Conditions";
            dsReportFilters.Tables[3].TableName = "Populations";
            dsReportFilters.Tables[4].TableName = "Measures";
            dsReportFilters.Tables[5].TableName = "Subscribers";
            dsReportFilters.Tables[6].TableName = "Payers";
            dsReportFilters.Tables[7].TableName = "ReportDate";
            dsReportFilters.Tables[8].TableName = "AttributionTypes";

            //Build Programs out based upon dataset table.
            if (dsReportFilters.Tables["Programs"].Rows.Count > 0)
            {
                foreach (DataRow row in dsReportFilters.Tables["Programs"].Rows)
                {
                    Program program = new Program();

                    program.ProgramId = Convert.ToInt32(row[Program.Columns.PROGRAMIDCOLUMN].ToString());
                    program.Name      = row[Program.Columns.PROGRAMNAMECOLUMN].ToString();

                    if (dsReportFilters.Tables["ReportDate"].Rows.Count > 0)
                    {
                        program.ReportDate = Convert.ToDateTime(dsReportFilters.Tables["ReportDate"].Rows[0][Program.Columns.REPORTDATE].ToString());
                    }

                    programs.Add(program);


                    if (dsReportFilters.Tables["Groups"].Rows.Count > 0)
                    {
                        program.Groups = new List <Group>();
                        foreach (DataRow groupRow in dsReportFilters.Tables["Groups"].Select(string.Format("ProgramId = '{0}'", program.ProgramId)))
                        {
                            Group group = Group.Build(groupRow);

                            if (dsReportFilters.Tables["Subscribers"].Rows.Count > 0)
                            {
                                group.Subscribers = new List <Subscriber>();
                                foreach (DataRow subscriberRow in dsReportFilters.Tables["Subscribers"].Select(string.Format("ProgramId = '{0}' AND GroupId = '{1}'", program.ProgramId, group.GroupId)))
                                {
                                    Subscriber subscriber = Subscriber.Build(subscriberRow);

                                    group.Subscribers.Add(subscriber);
                                }
                            }
                            program.Groups.Add(group);
                        }
                    }



                    if (dsReportFilters.Tables["Conditions"].Rows.Count > 0)
                    {
                        program.Conditions = new List <Condition>();
                        foreach (DataRow conditionRow in dsReportFilters.Tables["Conditions"].Select(string.Format("ProgramId = '{0}'", program.ProgramId)))
                        {
                            Condition condition = Condition.Build(conditionRow);

                            program.Conditions.Add(condition);

                            if (dsReportFilters.Tables["Populations"].Rows.Count > 0)
                            {
                                condition.Populations = new List <Population>();
                                foreach (DataRow populationRow in dsReportFilters.Tables["Populations"].Select(string.Format("ProgramConditionId = '{0}'", condition.ProgramConditionId)))
                                {
                                    Population population = Population.Build(populationRow);
                                    condition.Populations.Add(population);

                                    if (dsReportFilters.Tables["Measures"].Rows.Count > 0)
                                    {
                                        population.Measures = new List <Measure>();
                                        foreach (DataRow measureRow in dsReportFilters.Tables["Measures"].Select(string.Format("DenominatorId = '{0}'", population.DenominatorId)))
                                        {
                                            Measure measure = Measure.BuildLight(measureRow);
                                            population.Measures.Add(measure);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (dsReportFilters.Tables["Payers"].Rows.Count > 0)
                    {
                        program.Payers = new List <Payor>();
                        foreach (DataRow payerRow in dsReportFilters.Tables["Payers"].Rows)
                        {
                            Payor payer = Payor.Build(payerRow);
                            program.Payers.Add(payer);
                        }
                    }

                    if (dsReportFilters.Tables["AttributionTypes"].Rows.Count > 0)
                    {
                        program.AttributionTypes = new List <AttributionType>();
                        foreach (DataRow attributionTypeRow in dsReportFilters.Tables["AttributionTypes"].Rows)
                        {
                            AttributionType attributionTypes = AttributionType.Build(attributionTypeRow);
                            program.AttributionTypes.Add(attributionTypes);
                        }
                    }
                }
            }
            return(programs);
        }