/// <summary> /// Creates the keyed dto. /// </summary> /// <param name="key">The key to create.</param> /// <returns>A <see cref="Rem.Ria.PatientModule.Web.Common.ProblemDto"/></returns> public ProblemDto CreateKeyedDto(long key) { var problem = _problemRepository.GetByKey(key); var dto = Mapper.Map <Problem, ProblemDto> (problem); return(dto); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(DetachProblemFromVisitRequest request) { var problemDto = request.ProblemDto; var visitKey = request.VisitKey; IList <ProblemDto> results = new List <ProblemDto> (); var visit = _visitRepository.GetByKey(visitKey); if (visit != null) { var problem = _problemRepository.GetByKey(problemDto.Key); if (problem != null) { visit.DisassociateProblem(problem); } var visitDto = Mapper.Map <Visit, VisitDto> (visit); results = visitDto.Problems; } var response = CreateTypedResponse(); response.ProblemDtos = results; return(response); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(DeleteProblemRequest request) { var problemKey = request.ProblemKey; var problemDtos = new List <ProblemDto> (); var problem = _problemRepository.GetByKey(problemKey); if (problem != null) { _problemFactory.DestroyProblem(problem); problemDtos.AddRange( problem.ClinicalCase.Problems.Where(x => x.Key != problemKey).Select( p => Mapper.Map <Problem, ProblemDto> (p)).ToList()); } var response = CreateTypedResponse(); response.ProblemDtos = problemDtos; return(response); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(AssociateProblemsWithVisitRequest request) { var problemDtos = request.ProblemDtos; var visitKey = request.VisitKey; IList <ProblemDto> results = new List <ProblemDto> (); var visit = _visitRepository.GetByKey(visitKey); if (visit != null) { var problemList = new List <Problem> (); foreach (var problemDto in problemDtos) { var problem = _problemRepository.GetByKey(problemDto.Key); if (problem != null) { problemList.Add(problem); } } if (problemDtos.Count > 0) { visit.AssociateProblems(problemList); } var visitDto = Mapper.Map <Visit, VisitDto> (visit); results = visitDto.Problems; } var response = CreateTypedResponse(); response.ProblemDtos = results; return(response); }