protected void ViewBreastQDefinitions(IEnumerable <string> surveyTypes) { bool doFilter = surveyTypes.Count() > 0; CaisisBreastQEngine engine = new CaisisBreastQEngine(); var surveys = from survey in engine.GetAllDefinitions() from scale in survey.Definitions // optional filter by survey where !doFilter || surveyTypes.Contains(survey.SurveyType, StringComparer.OrdinalIgnoreCase) let def = new { Survey = survey.SurveyType, ScaleName = scale.Scale, ScaleTitle = scale.Title, ScaleAlias = scale.Alias, ScaleQuestions = string.Join(",", scale.Questions), ManualScoring = engine.manualScaleLookup.ContainsKey(scale.Scale).ToString().ToUpper() } group def by survey.SurveyType into g orderby g.Key select new { Survey = g.Key, Definitions = g }; SurveysRptr.DataSource = surveys; SurveysRptr.DataBind(); SurveysRptr.Visible = true; }
/// <summary> /// Builds a list of avaiable surveys (optionally filtered by disease) /// </summary> private void BuildSurveys() { DataView surveys; // filter by disease if (QueryDiseaseId.HasValue) { Caisis.Controller.DiseaseController dc = new Caisis.Controller.DiseaseController(); surveys = dc.GetTableRecordsByDisease(QueryDiseaseId.Value, new MetadataSurvey().TableName).DefaultView; surveys.RowFilter = Disease.DiseaseId + " IS NOT NULL"; } // otherwise normal else { surveys = BOL.BusinessObject.GetAllAsDataView <BOL.MetadataSurvey>(); } surveys.Sort = BOL.MetadataSurvey.SurveyType + " ASC"; SurveysRptr.DataSource = surveys; SurveysRptr.DataBind(); NoTablesMessage.Visible = surveys.Count == 0; }