public static ObjectId GetPatientsPrimaryCareManager(GetPrimaryCareManagerDataRequest request, IRestClient client) { try { ObjectId pcmObjectId = ObjectId.Empty; // [Route("/{Context}/{Version}/{ContractNumber}/Patient/{PatientId}/PrimaryCareManager", "GET")] string url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/PrimaryCareManager", DDCareMemberUrl, "NG", request.Version, request.ContractNumber, request.PatientId), request.UserId); GetCareMemberDataResponse ddResponse = client.Get <GetCareMemberDataResponse>(url); if (ddResponse != null && ddResponse.CareMember != null) { pcmObjectId = ObjectId.Parse(ddResponse.CareMember.ContactId); } return(pcmObjectId); } catch (Exception ex) { throw ex; } }
public void GetPrimaryCareManager_Test() { GetPrimaryCareManagerDataRequest request = new GetPrimaryCareManagerDataRequest { PatientId = "5325db1ad6a4850adcbba83a", Context = "NG", ContractNumber = "InHealth001", UserId = "000000000000000000000000", Version = 1.0 }; ICareMemberDataManager cm = new StubCareMemberDataManager { Factory = new StubCareMemberRepositoryFactory() }; CareMemberData response = cm.GetPrimaryCareManager(request); Assert.IsTrue(response.Id == "53271896d6a4850adc518b1f"); }
public CareMemberData GetPrimaryCareManager(GetPrimaryCareManagerDataRequest request) { try { CareMemberData response = null; ICareMemberRepository repo = Factory.GetRepository(request, RepositoryType.CareMember); List <CareMemberData> careMembers = repo.FindByPatientId(request.PatientId) as List <CareMemberData>; if (careMembers != null) { GetLookUpsDataRequest lookupDataRequest = new GetLookUpsDataRequest { Context = request.Context, ContractNumber = request.ContractNumber, Name = LookUpType.CareMemberType.ToString(), UserId = request.UserId, Version = request.Version }; string careManagerLookUpId = getCareManagerLookupId(lookupDataRequest); response = careMembers.Find(c => c.Primary == true && c.TypeId == careManagerLookUpId); } return(response); } catch (Exception ex) { throw ex; } }
public GetPrimaryCareManagerDataResponse Get(GetPrimaryCareManagerDataRequest request) { GetPrimaryCareManagerDataResponse response = new GetPrimaryCareManagerDataResponse(); try { if (string.IsNullOrEmpty(request.UserId)) { throw new UnauthorizedAccessException("CareMemberDD:Get()::Unauthorized Access"); } response.CareMember = Manager.GetPrimaryCareManager(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); }
public override void Implementation() { try { Results = new List <Result>(); ObjectId systemObjectId = ObjectId.Parse(Phytel.API.DataDomain.Program.DTO.Constants.SystemContactId); IRestClient client = new JsonServiceClient(); IProgramRepository repo = new ProgramRepositoryFactory().GetRepository(Request, Phytel.API.DataDomain.Program.DTO.RepositoryType.PatientProgram); List <MEPatientProgram> programs = (List <MEPatientProgram>)repo.SelectAll(); foreach (MEPatientProgram mePP in programs) { #region NIGHT-832, NIGHT831 mePP.AssignedBy = systemObjectId; mePP.AssignedOn = mePP.RecordCreatedOn; #endregion #region NIGHT-833 GetPrimaryCareManagerDataRequest careMemberDataRequest = new GetPrimaryCareManagerDataRequest { Context = Request.Context, ContractNumber = Request.ContractNumber, PatientId = mePP.PatientId.ToString(), UserId = Phytel.API.DataDomain.Program.DTO.Constants.SystemContactId, Version = 1 }; ObjectId primaryCareManagerId = Helper.GetPatientsPrimaryCareManager(careMemberDataRequest, client); if (primaryCareManagerId == ObjectId.Empty) { mePP.AssignedTo = null; } else { mePP.AssignedTo = primaryCareManagerId; } #endregion #region NIGHT-868 switch (mePP.State) { case ElementState.NotStarted: mePP.StateUpdatedOn = mePP.AssignedOn; break; case ElementState.InProgress: mePP.StateUpdatedOn = getActionsEarliestCompletedDate(mePP); break; case ElementState.Closed: mePP.StateUpdatedOn = getDisenrollmentActionsCompletedDate(mePP); break; } #endregion mePP.LastUpdatedOn = DateTime.UtcNow; mePP.UpdatedBy = systemObjectId; MEPatientProgram updatedProgram = mePP; bool success = repo.Save(updatedProgram); if (success) { Results.Add(new Result { Message = string.Format("Updated Program Id : '{0}' in PatientProgram collection.", updatedProgram.Id) }); } } Results.Add(new Result { Message = "Total records updated: " + Results.Count }); } catch (Exception ex) { throw ex; } }
public override void Implementation() { try { Results = new List <Result>(); ObjectId systemObjectId = ObjectId.Parse(Phytel.API.DataDomain.Program.DTO.Constants.SystemContactId); IRestClient client = new JsonServiceClient(); IProgramRepository repo = new ProgramRepositoryFactory().GetRepository(Request, Phytel.API.DataDomain.Program.DTO.RepositoryType.PatientProgram); IProgramRepository ppResponserepo = new ProgramRepositoryFactory().GetRepository(Request, Phytel.API.DataDomain.Program.DTO.RepositoryType.PatientProgramResponse); List <MEPatientProgram> programs = (List <MEPatientProgram>)repo.SelectAll(); foreach (MEPatientProgram mePP in programs) { GetPrimaryCareManagerDataRequest careMemberDataRequest = new GetPrimaryCareManagerDataRequest { Context = Request.Context, ContractNumber = Request.ContractNumber, PatientId = mePP.PatientId.ToString(), UserId = Phytel.API.DataDomain.Program.DTO.Constants.SystemContactId, Version = 1 }; ObjectId primaryCareManagerId = Helper.GetPatientsPrimaryCareManager(careMemberDataRequest, client); List <Module> modules = mePP.Modules; if (modules != null & modules.Count > 0) { foreach (Module meM in modules) { List <Phytel.API.DataDomain.Program.MongoDB.DTO.Action> actions = meM.Actions; if (actions != null && actions.Count > 0) { foreach (Phytel.API.DataDomain.Program.MongoDB.DTO.Action meA in actions) { #region NIGHT-876, NIGHT-835 if (meM.Enabled && meA.Enabled) { meA.AssignedBy = systemObjectId; meA.AssignedOn = mePP.RecordCreatedOn; } #endregion #region NIGHT-877 if (primaryCareManagerId == ObjectId.Empty) { meA.AssignedTo = null; } else { meA.AssignedTo = primaryCareManagerId; } #endregion #region NIGHT-952 switch (meA.State) { case ElementState.NotStarted: meA.StateUpdatedOn = mePP.RecordCreatedOn; break; case ElementState.InProgress: meA.StateUpdatedOn = getStepResponsesEarliestUpdatedDate(meA, ppResponserepo); break; case ElementState.Completed: meA.StateUpdatedOn = meA.DateCompleted; break; } #endregion } } } mePP.LastUpdatedOn = DateTime.UtcNow; mePP.UpdatedBy = systemObjectId; MEPatientProgram updatedProgram = mePP; bool success = repo.Save(updatedProgram); if (success) { Results.Add(new Result { Message = string.Format("Updated Program Id : '{0}' in PatientProgram collection.", updatedProgram.Id) }); } } } Results.Add(new Result { Message = "Total records updated: " + Results.Count }); } catch (Exception ex) { throw ex; } }