Beispiel #1
0
        private DateTime?getStepResponsesEarliestUpdatedDate(Phytel.API.DataDomain.Program.MongoDB.DTO.Action meA, IProgramRepository ppRrepo)
        {
            List <DateTime> updatedDates = new List <DateTime>();
            List <Step>     steps        = meA.Steps;

            if (steps != null && steps.Count > 0)
            {
                foreach (Step meS in steps)
                {
                    List <MEPatientProgramResponse> meResponses = ppRrepo.FindByStepId(meS.Id.ToString()) as List <MEPatientProgramResponse>;
                    meResponses.ForEach(c =>
                    {
                        updatedDates.Add((DateTime)c.LastUpdatedOn);
                    });
                }
            }
            updatedDates.Sort();
            if (updatedDates.Count > 0)
            {
                return(updatedDates[0]);
            }
            else
            {
                return(null);
            }
        }
Beispiel #2
0
        public GetPatientActionDetailsDataResponse GetActionDetails(GetPatientActionDetailsDataRequest request)
        {
            try
            {
                GetPatientActionDetailsDataResponse response = new GetPatientActionDetailsDataResponse();

                IProgramRepository repo = Factory.GetRepository(request, RepositoryType.PatientProgram);//.GetPatientProgramRepository(request);
                MEPatientProgram   mepp = repo.FindByID(request.PatientProgramId) as MEPatientProgram;

                IProgramRepository respRepo = Factory.GetRepository(request, RepositoryType.PatientProgramResponse);
                var stepIds = mepp.Modules.SelectMany(m => m.Actions.SelectMany(a => a.Steps.Select(s => s.Id))).ToList();
                DTOUtility.ResponsesBag = respRepo.Find(stepIds).Cast <MEPatientProgramResponse>().ToList();

                Module meModule = mepp.Modules.Where(m => m.Id == ObjectId.Parse(request.PatientModuleId)).FirstOrDefault();
                if (meModule != null)
                {
                    MongoDB.DTO.Action meAction = meModule.Actions.Where(a => a.Id == ObjectId.Parse(request.PatientActionId)).FirstOrDefault();
                    if (meAction != null)
                    {
                        List <Module> tMods   = DTOUtility.GetTemplateModulesList(mepp.SourceId.ToString(), request.ContractNumber, request.UserId);
                        Module        tmodule = tMods.Find(tm => tm.SourceId == meModule.SourceId);
                        if (tmodule != null)
                        {
                            meAction.Objectives = DTOUtility.GetTemplateObjectives(meAction.SourceId, tmodule);
                        }
                        response.ActionData = DTOUtility.GetAction(request.ContractNumber, request.UserId, meAction);
                    }
                }
                return(response);
            }
            catch (Exception ex)
            {
                DTOUtility.ResponsesBag = null;
                throw new Exception("DD:DataProgramManager:GetActionDetails()::" + ex.Message, ex.InnerException);
            }
            finally
            {
                DTOUtility.ResponsesBag = null;
            }
        }