/// <summary> /// Creates TransplantOrgan entity (status ScheduledTransplanting...); /// Updates DonorMedicalExam entity; /// </summary> public void UpdateMedicalExamResults(MedicalExamResultViewModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } UpdateMedicalExamResultsInner(model); }
public IActionResult SetMedicalExamResults(MedicalExamResultViewModel model) { var result = Execute(() => { bool isMedEmployee = _userManager.IsUserInMedEmployeeRole(User.Identity.Name); if (!isMedEmployee) { throw new UnauthorizedAccessException("You have not appropriate rights to access this action"); } _donorRequestService.UpdateMedicalExamResults(model); }); return(Json(result)); }
private void UpdateMedicalExamResultsInner(MedicalExamResultViewModel model) { var donorRequest = _donorRequestsRepository.GetById(model.DonorRequestId); if (donorRequest == null) { //TODO: handle return; } donorRequest.Status = model.MedicalExamStatus == MedicalExamStatuses.Pass ? DonorRequestStatuses.AwaitingForPatientRequest : DonorRequestStatuses.FailedMedicalExamination; var exam = _medicalExamsService.GetLastMedicalExamByDonorRequestId(donorRequest.Id); exam.Results = model.MedicalExamResults; exam.Status = model.MedicalExamStatus; if (model.MedicalExamStatus == MedicalExamStatuses.Pass && !donorRequest.TransplantOrganId.HasValue) { donorRequest.TransplantOrgan = new TransplantOrgan() { UserInfoId = donorRequest.DonorInfoId, OrganInfoId = donorRequest.OrganInfoId, ClinicId = exam.ClinicId, Status = TransplantOrganStatuses.AwaitingSchedulingRetrieving, Created = DateTime.UtcNow, CreatedBy = CurrentUserHolder.GetCurrentUserName() }; } _medicalExamsService.UpdateMedicalExam(exam); _donorRequestsRepository.Update(donorRequest); }