Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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; }
        }
Ejemplo n.º 3
0
        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);
        }