public object FindByID(string entityID)
 {
     try
     {
         PatientBarrierData barrierData = null;
         List <IMongoQuery> queries     = new List <IMongoQuery>();
         queries.Add(Query.EQ(MEPatientBarrier.IdProperty, ObjectId.Parse(entityID)));
         queries.Add(Query.EQ(MEPatientBarrier.DeleteFlagProperty, false));
         queries.Add(Query.EQ(MEPatientBarrier.TTLDateProperty, BsonNull.Value));
         IMongoQuery mQuery = Query.And(queries);
         using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName))
         {
             MEPatientBarrier b = ctx.PatientBarriers.Collection.Find(mQuery).FirstOrDefault();
             if (b != null)
             {
                 barrierData = new PatientBarrierData {
                     Id            = b.Id.ToString(),
                     Name          = b.Name,
                     PatientGoalId = b.PatientGoalId.ToString(),
                     CategoryId    = b.CategoryId == null ? null : b.CategoryId.ToString(),
                     StatusId      = ((int)b.Status),
                     StatusDate    = b.StatusDate,
                     DeleteFlag    = b.DeleteFlag,
                     Details       = b.Details
                 };
             }
         }
         return(barrierData);
     }
     catch (Exception) { throw; }
 }
Exemple #2
0
        public static bool SavePatientGoalBarriers(PostPatientGoalRequest request)
        {
            bool result = false;

            try
            {
                if (request.Goal.Barriers != null && request.Goal.Barriers.Count > 0)
                {
                    List <PatientBarrierData> pbd = new List <PatientBarrierData>();
                    request.Goal.Barriers.ForEach(b =>
                    {
                        PatientBarrierData data = ConvertToPatientBarrierData(b);
                        pbd.Add(ConvertToPatientBarrierData(b));
                    });

                    pbd.ForEach(bd =>
                    {
                        result = GoalsEndpointUtil.PostUpdateBarrierRequest(request, bd);
                    });
                }
                else if (request.Goal.Barriers.Count == 0)
                {
                    PatientBarrierData pbd = new PatientBarrierData {
                        Id = "0", PatientGoalId = request.PatientGoalId
                    };
                    result = GoalsEndpointUtil.PostUpdateBarrierRequest(request, pbd);
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception("AD:SavePatientGoalBarriers()::" + ex.Message, ex.InnerException);
            }
        }
Exemple #3
0
        public static PatientBarrier ConvertToBarrier(PatientBarrierData b)
        {
            PatientBarrier data = null;

            if (b != null)
            {
                data = new PatientBarrier
                {
                    Id            = b.Id,
                    StatusId      = b.StatusId,
                    CategoryId    = b.CategoryId,
                    Name          = b.Name,
                    PatientGoalId = b.PatientGoalId,
                    StatusDate    = b.StatusDate,
                    DeleteFlag    = b.DeleteFlag,
                    Details       = b.Details
                };
            }
            return(data);
        }
Exemple #4
0
        public PutUpdateBarrierResponse UpdatePatientBarrier(PutUpdateBarrierRequest request)
        {
            try
            {
                PutUpdateBarrierResponse result = new PutUpdateBarrierResponse();

                IGoalRepository repo = Factory.GetRepository(request, RepositoryType.PatientBarrier);

                if (request.BarrierIdsList != null && request.BarrierIdsList.Count > 0)
                {
                    List <PatientBarrierData> pid             = (List <PatientBarrierData>)repo.Find(request.PatientGoalId);
                    List <string>             dbBarrierIdList = GetBarrierIds(pid);

                    // update existing barrier entries with a delete
                    List <string> excludes = dbBarrierIdList.Except(request.BarrierIdsList).ToList <string>();
                    excludes.ForEach(ex =>
                    {
                        // create delete barrier request to insert
                        DeleteBarrierDataRequest dbr = new DeleteBarrierDataRequest {
                            BarrierId = ex, UserId = request.UserId
                        };
                        repo.Delete(dbr);
                    });
                }
                if (request.Barrier != null && request.Barrier.Id != "0")
                {
                    bool status = (bool)repo.Update(request);
                    if (status)
                    {
                        PatientBarrierData data = repo.FindByID(request.Barrier.Id) as PatientBarrierData;
                        result.BarrierData = data;
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public IEnumerable <object> Find(string Id)
 {
     try
     {
         List <PatientBarrierData> barriersDataList = null;
         List <IMongoQuery>        queries          = new List <IMongoQuery>();
         queries.Add(Query.EQ(MEPatientBarrier.PatientGoalIdProperty, ObjectId.Parse(Id)));
         queries.Add(Query.EQ(MEPatientBarrier.DeleteFlagProperty, false));
         queries.Add(Query.EQ(MEPatientBarrier.TTLDateProperty, BsonNull.Value));
         IMongoQuery mQuery = Query.And(queries);
         using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName))
         {
             List <MEPatientBarrier> meBarriers = ctx.PatientBarriers.Collection.Find(mQuery).ToList();
             if (meBarriers != null)
             {
                 barriersDataList = new List <PatientBarrierData>();
                 foreach (MEPatientBarrier b in meBarriers)
                 {
                     PatientBarrierData barrierData = new PatientBarrierData
                     {
                         Id            = b.Id.ToString(),
                         Name          = b.Name,
                         PatientGoalId = b.PatientGoalId.ToString(),
                         CategoryId    = b.CategoryId == null ? null : b.CategoryId.ToString(),
                         StatusId      = ((int)b.Status),
                         StatusDate    = b.StatusDate,
                         DeleteFlag    = b.DeleteFlag,
                         Details       = b.Details
                     };
                     barriersDataList.Add(barrierData);
                 }
             }
         }
         return(barriersDataList);
     }
     catch (Exception) { throw; }
 }
Exemple #6
0
        public bool PostUpdateBarrierRequest(PostPatientGoalRequest request, PatientBarrierData bd)
        {
            try
            {
                bool result = false;

                List <string> barrierIds = GetBarrierIdsForRequest(request.Goal.Barriers);

                IRestClient client = new JsonServiceClient();

                string url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/Goal/{5}/Barrier/{6}/Update",
                                                                  DDPatientGoalsServiceUrl,
                                                                  "NG",
                                                                  request.Version,
                                                                  request.ContractNumber,
                                                                  request.PatientId,
                                                                  request.Goal.Id,
                                                                  bd.Id), request.UserId);

                PutUpdateBarrierResponse response = client.Put <PutUpdateBarrierResponse>(
                    url, new PutUpdateBarrierRequest {
                    UserId = request.UserId, Barrier = bd, BarrierIdsList = barrierIds
                } as object);

                if (response != null)
                {
                    result = true;
                }

                return(result);
            }
            catch (WebServiceException ex)
            {
                throw new WebServiceException("AD:PostUpdateBarrierRequest()::" + ex.Message, ex.InnerException);
            }
        }
        public object Update(object entity)
        {
            bool result = false;
            PutUpdateBarrierRequest pbr = (PutUpdateBarrierRequest)entity;
            PatientBarrierData      pb  = pbr.Barrier;

            try
            {
                using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName))
                {
                    var q = MB.Query <MEPatientBarrier> .EQ(b => b.Id, ObjectId.Parse(pb.Id));

                    // Set the StatusDate to Now if the status is changed.
                    MEPatientBarrier existingPB = ctx.PatientBarriers.Collection.Find(q).SetFields(MEPatientBarrier.StatusProperty).FirstOrDefault();
                    if (existingPB != null)
                    {
                        if ((int)existingPB.Status != pb.StatusId)
                        {
                            pb.StatusDate = DateTime.UtcNow;
                        }
                    }

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientBarrier.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientBarrier.VersionProperty, pbr.Version));
                    uv.Add(MB.Update.Set(MEPatientBarrier.LastUpdatedOnProperty, System.DateTime.UtcNow));
                    if (pb.Name != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.NameProperty, pb.Name));
                    }
                    if (pb.Details != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.DetailProperty, pb.Details));
                    }
                    if (pb.PatientGoalId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.PatientGoalIdProperty, ObjectId.Parse(pb.PatientGoalId)));
                    }
                    if (pb.StatusId != 0)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.StatusProperty, pb.StatusId));
                    }
                    if (pb.StatusDate != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.StatusDateProperty, pb.StatusDate));
                    }
                    if (pb.CategoryId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.CategoryProperty, ObjectId.Parse(pb.CategoryId)));
                    }
                    uv.Add(MB.Update.Set(MEPatientBarrier.DeleteFlagProperty, pb.DeleteFlag));
                    DataAuditType type;
                    if (pb.DeleteFlag)
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays)));
                        type = Common.DataAuditType.Delete;
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientBarrier.TTLDateProperty, BsonNull.Value));
                        type = Common.DataAuditType.Update;
                    }
                    IMongoUpdate update = MB.Update.Combine(uv);

                    ctx.PatientBarriers.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(pbr.UserId,
                                             MongoCollectionName.PatientBarrier.ToString(),
                                             pb.Id.ToString(),
                                             type,
                                             pbr.ContractNumber);
                    result = true;
                }
                return(result as object);
            }
            catch (Exception ex) { throw new Exception("PatientGoalDD:MongoPatientBarrierRepository:Update()" + ex.Message, ex.InnerException); }
        }
Exemple #8
0
 public bool PostUpdateBarrierRequest(PostPatientGoalRequest request, PatientBarrierData bd)
 {
     throw new NotImplementedException();
 }