public async Task <IActionResult> Post([FromBody] PatientScreeningCommand addPnsScreeningCommand) { var response = await _mediator.Send(addPnsScreeningCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }
public async Task <object> Add([FromBody] PatientScreeningCommand command) { if (!ModelState.IsValid) { return(BadRequest(command)); } var result = await _mediator.Send(command, HttpContext.RequestAborted); if (result.IsValid) { return(Ok(result.Value)); } return(BadRequest(result)); }
public async Task <Result <AddPatientScreeningResponse> > Handle(PatientScreeningCommand request, CancellationToken cancellationToken) { try { var patientScreening = _mapper.Map <PatientScreening>(request); await _maternityUnitOfWork.Repository <PatientScreening>().AddAsync(patientScreening); await _maternityUnitOfWork.SaveAsync(); return(Result <AddPatientScreeningResponse> .Valid(new AddPatientScreeningResponse { IsScreeningDone = true })); } catch (Exception ex) { logger.Error(ex, $"An error occured while adding patient patient screening info {request.PatientMasterVisitId}"); return(Result <AddPatientScreeningResponse> .Invalid(ex.Message)); } }
public async Task <Result <PatientScreeningResponse> > Handle(PatientScreeningCommand request, CancellationToken cancellationToken) { try { using (_unitOfWork) { HtsScreeningOptions htsScreeningOptions = new HtsScreeningOptions() { PersonId = request.PersonId, Occupation = request.Occupation, ScreeningDate = request.ScreeningDate, BookingDate = request.BookingDate }; await _unitOfWork.Repository <HtsScreeningOptions>().AddAsync(htsScreeningOptions); await _unitOfWork.SaveAsync(); List <PatientScreening> screenings = new List <PatientScreening>(); foreach (var t in request.Screening) { if (t.ScreeningValueId != 0) { screenings.Add(new PatientScreening { PatientId = request.PatientId, PatientMasterVisitId = request.PatientMasterVisitId, ScreeningTypeId = t.ScreeningTypeId, ScreeningDone = true, ScreeningDate = request.ScreeningDate, ScreeningCategoryId = t.ScreeningCategoryId, ScreeningValueId = t.ScreeningValueId, Comment = null, Active = true, DeleteFlag = false, CreatedBy = request.UserId, CreateDate = DateTime.Now, VisitDate = request.ScreeningDate }); } } await _unitOfWork.Repository <PatientScreening>().AddRangeAsync(screenings); await _unitOfWork.SaveAsync(); List <HtsScreening> htsScreenings = new List <HtsScreening>(); foreach (var screening in screenings) { HtsScreening htsScreening = new HtsScreening() { PersonId = request.PersonId, PatientScreeningId = screening.Id, HtsScreeningOptionsId = htsScreeningOptions.Id }; htsScreenings.Add(htsScreening); } await _unitOfWork.Repository <HtsScreening>().AddRangeAsync(htsScreenings); await _unitOfWork.SaveAsync(); _unitOfWork.Dispose(); return(Result <PatientScreeningResponse> .Valid(new PatientScreeningResponse() { ScreeningDone = true })); } } catch (Exception e) { return(Result <PatientScreeningResponse> .Invalid(e.Message)); } }