public FinderResults <ReportDefinitionDto> ReportTypeSearch(int page, int pageSize, bool?isPatientCentric, string search = null) { var whereConstraintBuilder = new StringBuilder(); if (isPatientCentric.HasValue) { whereConstraintBuilder.AppendFormat(" AND [IsPatientCentric] = '{0}'", isPatientCentric.Value); } const string Query = @"SELECT [ReportDefinitionKey], [ReportName], [DisplayName], [IsPatientCentric] FROM [ReportModule].[ReportDefinition] WHERE 1=1 {0} ORDER BY ReportName"; var completeQuery = string.Format(Query, whereConstraintBuilder); using (var connection = _connectionFactory.CreateConnection()) { var reportDefinitionDtos = connection.Query <ReportDefinitionDto> (completeQuery).ToList(); var finderResults = new FinderResults <ReportDefinitionDto> { Data = reportDefinitionDtos, TotalCount = reportDefinitionDtos.Count }; return(finderResults); } }
public FinderResults <PatientDto> FinderSearch(int page, int pageSize, string search = null) { var start = page * pageSize; var end = start + pageSize; var replaceString = string.IsNullOrWhiteSpace(search) ? "" : WhereConstraint; var completeQuery = string.Format(Query, replaceString); using (var connection = _connectionFactory.CreateConnection()) using (var multiQuery = connection.QueryMultiple(completeQuery, new { start, end, UserContext.Current.OrganizationKey, search })) { var totalCount = multiQuery.Read <int>().Single(); var patientDtos = multiQuery.Read <PersonName, string, PatientDto, PatientDto>((personName, code, patientDto) => { patientDto.Name = personName; var lookupDto = new LookupDto { Code = code, Name = _resourcesManager.GetResourceManagerByName("Gender").GetString(code) }; patientDto.Gender = lookupDto; return(patientDto); }, "Code,Key").ToList(); var finderResults = new FinderResults <PatientDto>() { Data = patientDtos, TotalCount = totalCount }; return(finderResults); } }
public FinderResults <AssessmentDefinitionDto> FinderSearchActive(int page, int pageSize, string search = null) { var start = page * pageSize; var end = start + pageSize; var replaceString = string.IsNullOrWhiteSpace(search) ? "" : WhereConstraintActive; var completeQuery = string.Format(QueryActive, replaceString); using (var connection = _connectionFactory.CreateConnection()) using (var multiQuery = connection.QueryMultiple(completeQuery, new { start, end, search, UserContext.Current.OrganizationKey })) { var totalCount = multiQuery.Read <int>().Single(); var assessmentDefinitionDtos = multiQuery.Read <AssessmentDefinitionDto>().ToList(); foreach (var assessmentDefinitionDto in assessmentDefinitionDtos) { assessmentDefinitionDto.AssessmentName = _resourcesManager.GetResourceManagerByName(assessmentDefinitionDto.AssessmentName) .GetString(SharedStringNames.ResourceKeyPrefix + assessmentDefinitionDto.AssessmentCode); } var findResults = new FinderResults <AssessmentDefinitionDto> { Data = assessmentDefinitionDtos, TotalCount = totalCount }; return(findResults); } }
/// <summary> /// Lookups the search active. /// </summary> /// <param name="page">The page.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="assessmentDefinitionKey">The assessment definition key.</param> /// <param name="search">The search.</param> /// <returns> /// Returns FinderResults as type IItem. /// </returns> public FinderResults <IItem> GetLookupSearchActive(int page, int pageSize, string assessmentDefinitionKey, string search = null) { var questionsGroups = new List <IItem> (); var totalCount = 0; var assessmentDefinitionDto = GetAssessmentDefinitionForResponse(assessmentDefinitionKey); if (assessmentDefinitionDto != null) { var assessmentResourceManager = _resourcesManager.GetResourceManagerByName(assessmentDefinitionDto.AssessmentName); var assessmentName = assessmentResourceManager.GetString(SharedStringNames.ResourceKeyPrefix + assessmentDefinitionDto.AssessmentCode); var instance = _assessmentDefinitionRepository.GetByKey(_assessmentDefinitionRepository.GetKeyByCode(assessmentDefinitionDto.AssessmentCode)); foreach (var itemDef in instance.ItemDefinitions) { var str = assessmentResourceManager .GetString(SharedStringNames.ResourceKeyPrefix + itemDef.CodedConcept.Code); if (str == null) { str = assessmentResourceManager .GetString(SharedStringNames.ResourceKeyPrefix + itemDef.CodedConcept.Code + SharedStringNames.ResourceKeyPrefix + SharedStringNames.Instructions); if (str == null) { continue; } } if (itemDef.ItemType == ItemType.Question && IsMatch(search, str)) { var q = new Question { ItemType = ItemType.Question.DisplayName, Code = itemDef.CodedConcept.Code, Name = str, TemplateName = GetTemplateName(itemDef), AssessmentName = assessmentName, AssessmentCode = assessmentDefinitionDto.AssessmentCode }; questionsGroups.Add(q); totalCount += 1; } var groups = GetGroups(assessmentDefinitionDto, itemDef, search, assessmentName); var sections = GetSections(assessmentDefinitionDto, itemDef, search, assessmentName); totalCount += sections.Select(a => a.ItemType == ItemType.Question.DisplayName).Count() + groups.Select(a => a.ItemType == ItemType.Question.DisplayName).Count(); questionsGroups.AddRange(sections); questionsGroups.AddRange(groups); } questionsGroups = AssignLevels(questionsGroups); } var findResults = new FinderResults <IItem> { Data = questionsGroups, TotalCount = totalCount }; return(findResults); }
public FinderResults <AssessmentDefinitionDto> FinderSearch(int page, int pageSize, string search = null) { const string whereConstraint = " AND ([t1].AssessmentName LIKE @search+'%')"; const string query = @" SELECT COUNT(*) as TotalCount FROM AssessmentModule.AssessmentDefinition [t1] LEFT JOIN OrganizationModule.OrganizationAssessmentDefinition [t2] ON [t1].AssessmentDefinitionKey = [t2].AssessmentDefinitionKey AND OrganizationKey=@OrganizationKey WHERE [t2].AssessmentDefinitionKey IS NULL{0} SELECT [t].AssessmentName, [t].AssessmentDefinitionKey AS 'Key', [t].AssessmentCode FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY [t1].AssessmentName) AS [ROW_NUMBER], [t1].AssessmentName, [t1].AssessmentDefinitionKey, [t1].AssessmentCode FROM AssessmentModule.AssessmentDefinition [t1] LEFT JOIN OrganizationModule.OrganizationAssessmentDefinition [t2] ON [t1].AssessmentDefinitionKey = [t2].AssessmentDefinitionKey AND OrganizationKey=@OrganizationKey WHERE [t2].AssessmentDefinitionKey IS NULL{0} ) AS [t] WHERE [t].[ROW_NUMBER] BETWEEN @start + 1 AND @end ORDER BY [t].[ROW_NUMBER] "; var start = page * pageSize; var end = start + pageSize; var replaceString = string.IsNullOrWhiteSpace(search) ? "" : whereConstraint; var completeQuery = string.Format(query, replaceString); using (var connection = _connectionFactory.CreateConnection()) using (var multiQuery = connection.QueryMultiple(completeQuery, new { start, end, search, UserContext.Current.OrganizationKey })) { var totalCount = multiQuery.Read <int>().Single(); var assessmentDefinitionDtos = multiQuery.Read <AssessmentDefinitionDto>().ToList(); foreach (var assessmentDefinitionDto in assessmentDefinitionDtos) { assessmentDefinitionDto.AssessmentName = _resourcesManager.GetResourceManagerByName(assessmentDefinitionDto.AssessmentName) .GetString(SharedStringNames.ResourceKeyPrefix + assessmentDefinitionDto.AssessmentCode); } var findResults = new FinderResults <AssessmentDefinitionDto> { Data = assessmentDefinitionDtos, TotalCount = totalCount }; return(findResults); } }
public FinderResults <TeamSummaryDto> FinderSearch(int page, int pageSize, string search = null) { const string WhereConstraint = " AND (Name LIKE @search+'%')"; const string Query = @" SELECT COUNT(*) as TotalCount FROM OrganizationModule.Team WHERE OrganizationKey=@OrganizationKey{0} SELECT [t].Name, [t].TeamKey as 'Key' FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY [t1].Name) AS [ROW_NUMBER], [t1].Name, [t1].TeamKey FROM OrganizationModule.Team AS [t1] WHERE OrganizationKey=@OrganizationKey{0} ) AS [t] WHERE [t].[ROW_NUMBER] BETWEEN @start + 1 AND @end ORDER BY [t].[ROW_NUMBER] "; var start = page * pageSize; var end = start + pageSize; var replaceString = string.IsNullOrWhiteSpace(search) ? string.Empty : WhereConstraint; var completeQuery = string.Format(Query, replaceString); using (var connection = _connectionFactory.CreateConnection()) using (var multiQuery = connection.QueryMultiple(completeQuery, new { start, end, search, UserContext.Current.OrganizationKey })) { var totalCount = multiQuery.Read <int> ().Single(); var teamDtos = multiQuery.Read <TeamSummaryDto> (); var dataTableResponse = new FinderResults <TeamSummaryDto> { Data = teamDtos.ToList(), TotalCount = totalCount }; return(dataTableResponse); } }
public FinderResults <ReportTemplateDto> ReportTemplateSearch( int page, int pageSize, string reportType, string search = null, Guid?systemAccountKey = null, Guid?patientKey = null) { var whereConstraintBuilder = new StringBuilder(); if (!string.IsNullOrWhiteSpace(search)) { whereConstraintBuilder.Append(" AND (Name LIKE @search+'%')"); } if (systemAccountKey != null) { whereConstraintBuilder.Append(" AND SystemAccountKey= @systemAccountKey "); } if (patientKey != null) { whereConstraintBuilder.Append(" AND PatientKey= @patientKey "); } else { whereConstraintBuilder.Append(" AND PatientKey IS NULL "); } const string Query = @" SELECT COUNT(*) as TotalCount FROM ReportModule.ReportTemplate WHERE ReportType = @ReportType {0} SELECT [t].ReportStateCode, [t].ReportTemplateKey AS 'Key', [t].Name, [t].Parameters, [t].ReportType FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY [t1].Name) AS [ROW_NUMBER], [t1].ReportStateCode, [t1].ReportTemplateKey, [t1].Name, [t1].Parameters, [t1].ReportType FROM ReportModule.ReportTemplate AS [t1] WHERE ReportType = @ReportType {0} ) AS [t] WHERE [t].[ROW_NUMBER] BETWEEN @start + 1 AND @end ORDER BY [t].[ROW_NUMBER] "; var start = page * pageSize; var end = start + pageSize; var completeQuery = string.Format(Query, whereConstraintBuilder); using (var connection = _connectionFactory.CreateConnection()) using (var multiQuery = connection.QueryMultiple(completeQuery, new { start, end, reportType, search, patientKey, systemAccountKey })) { var totalCount = multiQuery.Read <int> ().Single(); var reportTemplateDtos = multiQuery.Read <string, ReportTemplateDto, ReportTemplateDto> ( (reportStateCode, reportTemplateDto) => { var lookupDto = new LookupDto { Code = reportStateCode, Name = _resourcesManager.GetResourceManagerByName("ReportState").GetString(reportStateCode), }; reportTemplateDto.ReportState = lookupDto; reportTemplateDto.ReportDisplayName = _resourcesManager.GetResourceManagerByName(reportTemplateDto.Name).GetString("ReportName"); return(reportTemplateDto); }, "Key").ToList(); var finderResults = new FinderResults <ReportTemplateDto> { Data = reportTemplateDtos, TotalCount = totalCount }; return(finderResults); } }