コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
            }
        }