Example #1
0
        /// <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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }