public void AddUrinaryOutcomesToChart(Chart chart, PatientOutcomesResults results)
        {
            List <KeyValuePair <int, double?> > r = new List <KeyValuePair <int, double?> >()
            {
                new KeyValuePair <int, double?>(3, results.UrinaryScore3Month),
                new KeyValuePair <int, double?>(6, results.UrinaryScore6Month),
                new KeyValuePair <int, double?>(9, results.UrinaryScore9Month),
                new KeyValuePair <int, double?>(12, results.UrinaryScore12Month),
                new KeyValuePair <int, double?>(15, results.UrinaryScore15Month),
                new KeyValuePair <int, double?>(18, results.UrinaryScore18Month),
                new KeyValuePair <int, double?>(21, results.UrinaryScore21Month),
                new KeyValuePair <int, double?>(24, results.UrinaryScore24Month)
            };

            AddOutcomes(chart, r);
        }
        public PatientOutcomesResults GetPatientOutcomes(int patientId)
        {
            IDictionary <string, double?> rawResults = outcomes.CalculateOutcomes(patientId);

            PatientOutcomesResults results = new PatientOutcomesResults();

            foreach (string key in rawResults.Keys)
            {
                double?r = rawResults[key];

                switch (key)
                {
                // return 5-year production; consistent with previous practice
                // case "P.BCR.CGEN":
                case "P.BCR.CGEN.0":
                    results.NomogramPredictionBaseline = r;
                    break;

                case "P.BCR.CGEN.2":
                    results.NomogramPrediction2Year = r;
                    break;

                case "P.BCR.CGEN.5":
                    results.BiochemicalRecurrenceRate = r;
                    results.NomogramPrediction5Year   = r;
                    break;

                case "P.BCR.CGEN.7":
                    results.NomogramPrediction7Year = r;
                    break;

                case "P.BCR.CGEN.10":
                    results.NomogramPrediction10Year = r;
                    break;

                case "P.EF.CGEN.P3M":
                    results.ErectileScore3Month = r;
                    break;

                case "P.EF.CGEN.P6M":
                    results.ErectileScore6Month = r;
                    break;

                case "P.EF.CGEN.P9M":
                    results.ErectileScore9Month = r;
                    break;

                case "P.EF.CGEN.P12M":
                    results.ErectileScore12Month = r;
                    break;

                case "P.EF.CGEN.P15M":
                    results.ErectileScore15Month = r;
                    break;

                case "P.EF.CGEN.P18M":
                    results.ErectileScore18Month = r;
                    break;

                case "P.EF.CGEN.P21M":
                    results.ErectileScore21Month = r;
                    break;

                case "P.EF.CGEN.P24M":
                    results.ErectileScore24Month = r;
                    break;

                case "P.UF.CGEN.P3M":
                    results.UrinaryScore3Month = r;
                    break;

                case "P.UF.CGEN.P6M":
                    results.UrinaryScore6Month = r;
                    break;

                case "P.UF.CGEN.P9M":
                    results.UrinaryScore9Month = r;
                    break;

                case "P.UF.CGEN.P12M":
                    results.UrinaryScore12Month = r;
                    break;

                case "P.UF.CGEN.P15M":
                    results.UrinaryScore15Month = r;
                    break;

                case "P.UF.CGEN.P18M":
                    results.UrinaryScore18Month = r;
                    break;

                case "P.UF.CGEN.P21M":
                    results.UrinaryScore21Month = r;
                    break;

                case "P.UF.CGEN.P24M":
                    results.UrinaryScore24Month = r;
                    break;

                case "P.EF.CGEN.P1Y.B3M":
                    results.ErectileRate1YearBasedOn3Month = r;
                    break;

                case "P.EF.CGEN.P1Y.B6M":
                    results.ErectileRate1YearBasedOn6Month = r;
                    break;

                case "P.EF.CGEN.P1Y.B9M":
                    results.ErectileRate1YearBasedOn9Month = r;
                    break;

                case "P.UF.CGEN.P1Y.B3M":
                    results.UrinaryRate1YearBasedOn3Month = r;
                    break;

                case "P.UF.CGEN.P1Y.B6M":
                    results.UrinaryRate1YearBasedOn6Month = r;
                    break;

                case "P.UF.CGEN.P1Y.B9M":
                    results.UrinaryRate1YearBasedOn9Month = r;
                    break;
                }
            }

            return(results);
        }