public GetPatientTasksDataResponse GetTasks(GetPatientTasksDataRequest request) { try { var result = new GetPatientTasksDataResponse(); IGoalRepository taskRepo = Factory.GetRepository(request, RepositoryType.PatientTask); taskRepo.UserId = request.UserId; IGoalRepository goalRepo = Factory.GetRepository(request, RepositoryType.PatientGoal); // Get all the goals associated to the patient in the request object. if (!string.IsNullOrEmpty(request.PatientId)) { List <PatientGoalViewData> goalViewDataList = goalRepo.Find(request.PatientId) as List <PatientGoalViewData>; List <string> patientGoalIds = goalViewDataList.Select(a => a.Id).ToList(); if (patientGoalIds != null && patientGoalIds.Count > 0) { result.TasksData = (List <PatientTaskData>)taskRepo.Search(request, patientGoalIds); } } else { result.TasksData = (List <PatientTaskData>)taskRepo.Search(request, null); } return(result); } catch (Exception ex) { throw ex; } }
public IEnumerable <object> Search(object request, List <string> patientGoalIds) { List <PatientTaskData> list = null; GetPatientTasksDataRequest dataRequest = (GetPatientTasksDataRequest)request; try { using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName)) { List <IMongoQuery> queries = new List <IMongoQuery>(); queries.Add(Query.EQ(MEPatientTask.DeleteFlagProperty, false)); if (dataRequest.StatusIds != null && dataRequest.StatusIds.Count > 0) { queries.Add(Query.In(MEPatientTask.StatusProperty, new BsonArray(dataRequest.StatusIds))); } if (patientGoalIds != null && patientGoalIds.Count > 0) { List <BsonValue> bsonList = Helper.ConvertToBsonValueList(patientGoalIds); queries.Add(Query.In(MEPatientTask.PatientGoalIdProperty, bsonList)); } IMongoQuery mQuery = Query.And(queries); List <MEPatientTask> meTasks = null; meTasks = ctx.PatientTasks.Collection.Find(mQuery).ToList(); if (meTasks != null && meTasks.Count > 0) { list = new List <PatientTaskData>(); foreach (MEPatientTask t in meTasks) { PatientTaskData taskData = new PatientTaskData { Id = t.Id.ToString(), TargetValue = t.TargetValue, PatientGoalId = t.PatientGoalId.ToString(), StatusId = ((int)t.Status), TargetDate = t.TargetDate, BarrierIds = Helper.ConvertToStringList(t.BarrierIds), Description = t.Description, StatusDate = t.StatusDate, StartDate = t.StartDate, CustomAttributes = DTOUtil.GetCustomAttributeIdAndValues(t.Attributes), ClosedDate = t.ClosedDate, CreatedById = t.RecordCreatedBy.ToString(), DeleteFlag = t.DeleteFlag, Details = t.Details }; var mePG = ctx.PatientGoals.Collection.Find(Query.EQ(MEPatientGoal.IdProperty, ObjectId.Parse(taskData.PatientGoalId))).SetFields(MEPatientGoal.NameProperty).FirstOrDefault(); if (mePG != null) { taskData.GoalName = mePG.Name; } list.Add(taskData); } } } return(list); } catch (Exception) { throw; } }
public GetPatientTasksDataResponse Post(GetPatientTasksDataRequest request) { GetPatientTasksDataResponse response = new GetPatientTasksDataResponse(); try { if (string.IsNullOrEmpty(request.UserId)) { throw new UnauthorizedAccessException("PatientGoalDD:Post()::Unauthorized Access"); } response = Manager.GetTasks(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); }