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; } }
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); } }
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); }
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; } }
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); } }
public bool PostUpdateBarrierRequest(PostPatientGoalRequest request, PatientBarrierData bd) { throw new NotImplementedException(); }