Exemplo n.º 1
0
        public object FindByID(string entityID)
        {
            GetCohortDataResponse cohortResponse = null;

            using (CohortMongoContext ctx = new CohortMongoContext(_dbName))
            {
                List <IMongoQuery> queries = new List <IMongoQuery>();
                queries.Add(Query.EQ(MECohort.IdProperty, ObjectId.Parse(entityID)));
                queries.Add(Query.EQ(MECohort.DeleteFlagProperty, false));
                IMongoQuery mQuery   = Query.And(queries);
                MECohort    meCohort = ctx.Cohorts.Collection.Find(mQuery).FirstOrDefault();
                if (meCohort != null)
                {
                    cohortResponse = new GetCohortDataResponse();
                    API.DataDomain.Cohort.DTO.CohortData cohort = new API.DataDomain.Cohort.DTO.CohortData {
                        ID              = meCohort.Id.ToString(),
                        SName           = meCohort.ShortName,
                        Query           = meCohort.Query,
                        QueryWithFilter = meCohort.QueryWithFilter,
                        Sort            = meCohort.Sort
                    };
                    cohortResponse.Cohort = cohort;
                }
            }
            return(cohortResponse);
        }
Exemplo n.º 2
0
        public static GetCohortDataResponse GetCohortByID(GetCohortDataRequest request)
        {
            GetCohortDataResponse response = new GetCohortDataResponse();

            ICohortRepository <GetCohortDataResponse> repo = CohortRepositoryFactory <GetCohortDataResponse> .GetCohortRepository(request.ContractNumber, request.Context, request.UserId);

            response = repo.FindByID(request.CohortID) as GetCohortDataResponse;

            return(response);
        }
Exemplo n.º 3
0
        public void GetCohortByID_Test()
        {
            // Arrange
            double version               = 1.0;
            string contractNumber        = "InHealth001";
            string context               = "NG";
            GetCohortDataRequest request = new GetCohortDataRequest {
                CohortID = "528aa055d4332317acc50978", Context = context, ContractNumber = contractNumber, Version = version
            };

            // Act
            GetCohortDataResponse response = DataCohortManager.GetCohortByID(request);

            // Assert
            Assert.IsTrue(response.Cohort.SName == "All(f)");
        }
Exemplo n.º 4
0
        public GetCohortDataResponse Get(GetCohortDataRequest request)
        {
            GetCohortDataResponse response = new GetCohortDataResponse();

            try
            {
                if (string.IsNullOrEmpty(request.UserId))
                {
                    throw new UnauthorizedAccessException("CohortDD:Get()::Unauthorized Access");
                }

                response         = DataCohortManager.GetCohortByID(request);
                response.Version = request.Version;
            }
            catch (Exception ex)
            {
                CommonFormatter.FormatExceptionResponse(response, base.Response, ex);

                string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0";
                Common.Helper.LogException(int.Parse(aseProcessID), ex);
            }
            return(response);
        }
Exemplo n.º 5
0
        public void GetCohortByID_Test()
        {
            // Arrange
            string      expectedValue  = "All(f)";
            double      version        = 1.0;
            string      contractNumber = "InHealth001";
            string      context        = "NG";
            string      cohortID       = "528aa055d4332317acc50978";
            IRestClient client         = new JsonServiceClient();

            JsonServiceClient.HttpWebRequestFilter = x =>
                                                     x.Headers.Add(string.Format("{0}: {1}", "x-Phytel-UserID", "531f2df9072ef727c4d2a3df"));

            // Act
            GetCohortDataResponse response = client.Get <GetCohortDataResponse>
                                                 (string.Format("{0}/{1}/{2}/{3}/cohort/{4}",
                                                                "http://localhost:8888/Cohort/", context, version, contractNumber, cohortID));

            string actualValue = response.Cohort.SName;

            // Assert
            Assert.AreEqual(expectedValue, actualValue, true);
        }
Exemplo n.º 6
0
        public GetCohortPatientsDataResponse GetCohortPatients(GetCohortPatientsDataRequest request)
        {
            try
            {
                string DDCohortServiceURL = ConfigurationManager.AppSettings["DDCohortServiceUrl"];

                GetCohortPatientsDataResponse result = new GetCohortPatientsDataResponse();

                IRestClient client = new JsonServiceClient();

                string url = Helpers.BuildURL(string.Format("{0}/{1}/{2}/{3}/cohort/{4}", DDCohortServiceURL, request.Context, request.Version, request.ContractNumber, request.CohortID), request.UserId);

                // 1) lookup query for cohortid in cohorts collection
                string cohortID = request.CohortID;
                GetCohortDataResponse response = client.Get <GetCohortDataResponse>(url);

                string cohortQuery = response.Cohort.Query;
                //If #USER_ID# is present in the cohort query, replace it with the ContactId.
                if (!string.IsNullOrEmpty(request.UserId))
                {
                    cohortQuery = response.Cohort.Query.Replace("#USER_ID#", request.UserId);
                }

                //Get the filter parameters
                string field1 = string.Empty;
                string field2 = string.Empty;

                if (string.IsNullOrEmpty(request.SearchFilter) == false)
                {
                    //is there a comma in the string?
                    if (request.SearchFilter.IndexOf(',') > -1)
                    {
                        string[] info = request.SearchFilter.Split(",".ToCharArray());
                        field1 = info[1].Trim();
                        field2 = info[0].Trim();
                    }
                    else
                    {
                        string[] info = request.SearchFilter.Split(" ".ToCharArray());
                        field1 = info[0].Trim();
                        if (info.Length > 1)
                        {
                            field2 = info[1].Trim();
                        }
                    }
                }

                string[] filterParms = new string[] { field1, field2 };

                // 2) get patientIDs through cohortpatients view
                IPatientRepository repo = Factory.GetRepository(request, RepositoryType.CohortPatientView);

                result.CohortPatients = repo.Select(cohortQuery, filterParms, response.Cohort.Sort, request.Skip, request.Take);

                return(result);
            }
            catch (Exception)
            {
                throw;
            }
        }