Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
                }
        }
Esempio n. 4
0
        /// <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);
                }
        }
Esempio n. 6
0
        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);
                }
        }
Esempio n. 7
0
        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);
                }
        }