Esempio n. 1
0
 public string PatientCareEndingStatus(int patientId)
 {
     using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext()))
     {
         var careendingStatus = new PatientCareEnding();
         var lookupManager    = new BLookupManager();
         var exitReason       =
             unitOfWork.PatientCareEndingRepository.FindBy(
                 x => x.PatientId == patientId & !x.DeleteFlag & !x.Active)
             .FirstOrDefault();
         if (exitReason != null)
         {
             careendingStatus.ExitReason          = exitReason.ExitReason;
             careendingStatus.ExitDate            = exitReason.ExitDate;
             careendingStatus.TransferOutFacility = exitReason.TransferOutFacility;
             careendingStatus.DateOfDeath         = exitReason.DateOfDeath;
             careendingStatus.CareEndingNotes     = exitReason.CareEndingNotes;
         }
         else
         {
             careendingStatus.ExitReason = 0;
         }
         unitOfWork.Dispose();
         return(careendingStatus.ToString());
     }
 }
Esempio n. 2
0
 public int ResetPatientCareEnding(PatientCareEnding patientCareEnding)
 {
     using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext()))
     {
         unitOfWork.PatientCareEndingRepository.Update(patientCareEnding);
         unitOfWork.Complete();
         int Id = patientCareEnding.Id;
         unitOfWork.Dispose();
         return(Id);
     }
 }
Esempio n. 3
0
 public int ResetPatientCareEnding(PatientCareEnding patientCareEnding)
 {
     try
     {
         return(mgr.ResetPatientCareEnding(patientCareEnding));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Esempio n. 4
0
        public int UpdatePatientCareEnding(int patientId, int patientMasterVisitId, int patientEnrollmentId, int exitReason, DateTime exitDate, string transferOutFacility, DateTime dateOfDeath, string careEndingNotes)
        {
            PatientCareEnding patientCareEnding = new PatientCareEnding()
            {
                PatientId            = patientId,
                PatientMasterVisitId = patientMasterVisitId,
                PatientEnrollmentId  = patientEnrollmentId,
                ExitReason           = exitReason,
                ExitDate             = exitDate,
                TransferOutFacility  = transferOutFacility,
                DateOfDeath          = dateOfDeath,
                CareEndingNotes      = careEndingNotes
            };

            return(mgr.AddPatientCareEnding(patientCareEnding));
        }
        public int AddPatientCareEndingOther(int patientId, int patientMasterVisitId, int patientEnrollmentId, int exitReason, DateTime exitDate, string careEndingNotes, int?tracingOutome, int?reasonLostToFollowup)
        {
            PatientCareEnding patientCareEnding = new PatientCareEnding()
            {
                PatientId            = patientId,
                PatientMasterVisitId = patientMasterVisitId,
                PatientEnrollmentId  = patientEnrollmentId,
                ExitReason           = exitReason,
                ExitDate             = exitDate,
                CareEndingNotes      = careEndingNotes,
                TracingOutome        = tracingOutome,
                ReasonLostToFollowup = reasonLostToFollowup
            };

            return(mgr.AddPatientCareEnding(patientCareEnding));
        }
        public int AddPatientCareEndingTransferOut(int patientId, int patientMasterVisitId, int patientEnrollmentId, int exitReason, DateTime exitDate, string transferOutFacility, string careEndingNotes, string reasonForTransferOut, DateTime?dateExpectedToReport)
        {
            PatientCareEnding patientCareEnding = new PatientCareEnding()
            {
                PatientId            = patientId,
                PatientMasterVisitId = patientMasterVisitId,
                PatientEnrollmentId  = patientEnrollmentId,
                ExitReason           = exitReason,
                ExitDate             = exitDate,
                TransferOutFacility  = transferOutFacility,
                CareEndingNotes      = careEndingNotes,
                ReasonForTransferOut = reasonForTransferOut,
                DateExpectedToReport = dateExpectedToReport
            };

            return(mgr.AddPatientCareEnding(patientCareEnding));
        }
        public int AddPatientCareEndingDeath(int patientId, int patientMasterVisitId, int patientEnrollmentId, int exitReason, DateTime exitDate, DateTime?dateOfDeath, string careEndingNotes, int?reasonsForDeath, int?specificCausesOfDeath)
        {
            PatientCareEnding patientCareEnding = new PatientCareEnding()
            {
                PatientId             = patientId,
                PatientMasterVisitId  = patientMasterVisitId,
                PatientEnrollmentId   = patientEnrollmentId,
                ExitReason            = exitReason,
                ExitDate              = exitDate,
                DateOfDeath           = dateOfDeath,
                CareEndingNotes       = careEndingNotes,
                ReasonsForDeath       = reasonsForDeath,
                SpecificCausesOfDeath = specificCausesOfDeath
            };

            return(mgr.AddPatientCareEnding(patientCareEnding));
        }
Esempio n. 8
0
 public int UpdatePatientCareEnding(PatientCareEnding patientCareEnding)
 {
     using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext()))
     {
         var careEnding =
             unitOfWork.PatientCareEndingRepository.FindBy(
                 x => x.PatientId == patientCareEnding.PatientId & !x.DeleteFlag & !x.Active)
             .FirstOrDefault();
         if (careEnding != null)
         {
             careEnding.ExitReason          = patientCareEnding.ExitReason;
             careEnding.ExitDate            = patientCareEnding.ExitDate;
             careEnding.TransferOutFacility = patientCareEnding.TransferOutFacility;
             careEnding.DateOfDeath         = patientCareEnding.DateOfDeath;
             careEnding.CareEndingNotes     = patientCareEnding.CareEndingNotes;
         }
         unitOfWork.PatientCareEndingRepository.Update(careEnding);
         result = unitOfWork.Complete();
         unitOfWork.Dispose();
         return(result);
     }
 }
        public async Task <Result <AddPatientCareEndingResponse> > Handle(AddPatientCareEndingCommand request, CancellationToken cancellationToken)
        {
            try
            {
                int PatientEnrollmentId;
                var result = await _unitOfWork.Repository <PatientEnrollment>().Get(x =>
                                                                                    x.PatientId == request.PatientId && x.ServiceAreaId == request.ServiceAreaId &&
                                                                                    x.DeleteFlag == false && !x.CareEnded).FirstOrDefaultAsync();

                var PatientCare = await _unitOfWork.Repository <PatientCareEnding>().Get(x => x.PatientMasterVisitId == request.PatientMasterVisitId && x.PatientId == request.PatientId &&
                                                                                         x.DeleteFlag == false).FirstOrDefaultAsync();

                if (PatientCare != null)
                {
                    PatientCare.PatientId            = request.PatientId;
                    PatientCare.PatientMasterVisitId = request.PatientMasterVisitId;
                    PatientCare.ExitReason           = request.DisclosureReason;
                    PatientCare.ExitDate             = request.CareEndedDate;
                    PatientCare.CareEndingNotes      = request.Specify;
                    PatientCare.DateOfDeath          = request.DeathDate;

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

                    if (PatientCare.Id > 0)
                    {
                        Id = PatientCare.Id;
                    }
                    Message += "Patient Information has been updated";
                }
                else
                {
                    if (result != null)
                    {
                        PatientEnrollmentId = result.Id;

                        if (PatientEnrollmentId > 0)
                        {
                            PatientCareEnding pc = new PatientCareEnding()

                            {
                                PatientId            = request.PatientId,
                                PatientMasterVisitId = request.PatientMasterVisitId,
                                PatientEnrollmentId  = PatientEnrollmentId,
                                ExitReason           = request.DisclosureReason,
                                ExitDate             = request.CareEndedDate,
                                CareEndingNotes      = request.Specify,
                                DateOfDeath          = request.DeathDate,
                                Active     = false,
                                DeleteFlag = false,
                                CreatedBy  = request.UserId,
                                CreateDate = DateTime.Now,
                            };

                            await _unitOfWork.Repository <PatientCareEnding>().AddAsync(pc);

                            await _unitOfWork.SaveAsync();


                            if (pc.Id > 0)
                            {
                                Id = Id;
                            }

                            Message += "Patient has been successfully careended";
                        }

                        var patientenrollment = await _unitOfWork.Repository <PatientEnrollment>().Get(x => x.Id == PatientEnrollmentId
                                                                                                       ).FirstOrDefaultAsync();

                        if (patientenrollment != null)
                        {
                            patientenrollment.CareEnded = true;
                            _unitOfWork.Repository <PatientEnrollment>().Update(patientenrollment);
                            await _unitOfWork.SaveAsync();
                        }
                    }

                    else
                    {
                        Message += "Patient has not been successfully careended";
                    }
                }



                return(Result <AddPatientCareEndingResponse> .Valid(new AddPatientCareEndingResponse()
                {
                    Id = Id,
                    Message = Message
                }));
            }
            catch (Exception ex)
            {
                return(Result <AddPatientCareEndingResponse> .Invalid(ex.Message));
            }
        }