private List <QuestionResponse> GetQuestionResponsesFromResource(PatientsWithSpecificResponseParameters reportParams)
        {
            var returnResponses = reportParams.QuestionResponses;

            foreach (var response in returnResponses)
            {
                response.LocalizedResponses = new List <string> ();
                QuestionResponse response1 = response;
                foreach (var r in response.Responses.Where(r => response1.InputType == "MultipleSelect").ToList())
                {
                    var assessmentName = string.Empty;
                    var assessment     = GetAssessmentDefinitionForResponse(response.AssessmentDefinitionKey.ToString());
                    if (assessment != null)
                    {
                        assessmentName = assessment.AssessmentName;
                    }
                    response.LocalizedResponses.Add(_resourcesManager.GetResourceManagerByName(assessmentName).GetString("_" + r));
                }
                foreach (var r in response.Responses.Where(r => response1.InputType != "MultipleSelect").ToList())
                {
                    if (response1.InputType == "Height")
                    {
                        response.LocalizedResponses.Add(GetHeightString(r));
                    }
                    else
                    {
                        response.LocalizedResponses.Add(r);
                    }
                }
            }
            return(returnResponses);
        }
        private string GetResponseValueAtIndex(QuestionResponse questionResponse, int index)
        {
            var returnString = string.Empty;

            if (questionResponse.Responses.Count >= index + 1)
            {
                returnString = questionResponse.Responses.ElementAt(index);
            }
            return(returnString);
        }
        private string GetMultiselectQuery(QuestionResponse questionResponse, string or)
        {
            var returnStr = string.Format(" {0} ([AssessmentModule].[AssessmentInstanceResponse].[AssessmentCode]='{1}' " +
                                          "AND ItemDefinitionCode='{2}' " +
                                          "AND ResponseValue IN ({3}))",
                                          or,
                                          questionResponse.AssessmentCode,
                                          questionResponse.ItemDefinitionCode,
                                          string.Join(",", questionResponse.Responses.Select(s => "'" + s + "'")));

            return(returnStr);
        }
        private string GetStringQuery(QuestionResponse questionResponse, string or)
        {
            var returnStr = string.Format(" {0} ([AssessmentModule].[AssessmentInstanceResponse].[AssessmentCode]='{1}' " +
                                          "AND ItemDefinitionCode='{2}' " +
                                          "AND ResponseValue='{3}')",
                                          or,
                                          questionResponse.AssessmentCode,
                                          questionResponse.ItemDefinitionCode,
                                          GetResponseValueAtIndex(questionResponse, 0));

            return(returnStr);
        }
        private string GetIntRangeQuery(QuestionResponse questionResponse, string or)
        {
            var returnStr = string.Format(" {0} ([AssessmentModule].[AssessmentInstanceResponse].[AssessmentCode]='{1}' " +
                                          " AND ItemDefinitionCode='{2}' " +
                                          " AND ResponseType='Int32' " +
                                          " AND CAST(ResponseValue AS INT) " +
                                          "BETWEEN {3} AND {4})",
                                          or,
                                          questionResponse.AssessmentCode,
                                          questionResponse.ItemDefinitionCode,
                                          GetResponseValueAtIndex(questionResponse, 0),
                                          GetResponseValueAtIndex(questionResponse, 1));

            return(returnStr);
        }