示例#1
0
        public async Task <Result <AddPatientReenrollmentResponse> > Handle(AddPatientReenrollmentCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var patientcareendings = await _unitOfWork.Repository <PatientCareEnding>().Get(x => x.PatientId == request.PatientId && !x.Active).ToListAsync();

                if (patientcareendings.Count > 0)
                {
                    foreach (var careend in patientcareendings)
                    {
                        careend.DeleteFlag = true;
                        careend.Active     = true;

                        _unitOfWork.Repository <PatientCareEnding>().Update(careend);
                        await _unitOfWork.SaveAsync();
                    }
                }

                PatientReenrollment pr = new PatientReenrollment();
                pr.CreateDate       = DateTime.Now;
                pr.CreatedBy        = request.UserId;
                pr.DeleteFlag       = false;
                pr.PatientId        = request.PatientId;
                pr.ReenrollmentDate = request.EnrollmentDate;
                await _unitOfWork.Repository <PatientReenrollment>().AddAsync(pr);

                await _unitOfWork.SaveAsync();

                if (pr.Id > 0)
                {
                    idnumber = pr.Id;
                }

                var patientenrollment = await _unitOfWork.Repository <PatientEnrollment>().Get(x => x.PatientId == request.PatientId && x.ServiceAreaId == request.ServiceAreaId).OrderByDescending(x => x.Id).FirstOrDefaultAsync();

                if (patientenrollment != null)
                {
                    patientenrollment.CareEnded = false;

                    _unitOfWork.Repository <PatientEnrollment>().Update(patientenrollment);
                    await _unitOfWork.SaveAsync();

                    message += "Patient Successfully reenrolled";
                }

                return(Result <AddPatientReenrollmentResponse> .Valid(new AddPatientReenrollmentResponse()
                {
                    Id = idnumber,
                    Message = message
                }));
            }
            catch (Exception ex)
            {
                return(Result <AddPatientReenrollmentResponse> .Invalid(ex.Message));
            }
        }
示例#2
0
        public async Task <IActionResult> AddPatientReenollment([FromBody] AddPatientReenrollmentCommand addPatientReenrollmentCommand)
        {
            var encountervisit = await _mediator.Send(addPatientReenrollmentCommand, Request.HttpContext.RequestAborted);

            if (encountervisit.IsValid)
            {
                return(Ok(encountervisit.Value));
            }
            return(BadRequest(encountervisit));
        }