コード例 #1
0
        public void DonateBlood(string donorCnp, string bloodType, string rh, int centerId)
        {
            using (UnitOfWork uow = new UnitOfWork())
            {
                var donor = uow.DonorRepository.GetAll().Where(d => d.CNP == donorCnp).FirstOrDefault();

                MedicalAnalysis medicalAnalysis = new MedicalAnalysis();

                BloodBag bloodBag = new BloodBag
                {
                    Status    = BloodBagStatus.Waiting,
                    Stage     = BloodBagStage.Sampling,
                    BloodType = (BloodTypes)Enum.Parse(typeof(BloodTypes), bloodType.ToUpper()),
                    RhType    = (RhTypes)Enum.Parse(typeof(RhTypes), rh.ToUpper()),
                    CenterId  = centerId,
                    Date      = DateTime.Now
                };
                uow.BloodBagRepository.Add(bloodBag);
                uow.Save();

                medicalAnalysis.BloodBag    = bloodBag;
                medicalAnalysis.Donor       = donor;
                medicalAnalysis.IsFilled    = false;
                medicalAnalysis.DateAndTime = DateTime.Now;

                uow.MedicalAnalysisRepository.Add(medicalAnalysis);
                uow.Save();
            }
        }
コード例 #2
0
        public void FillAnalysis(MedicalAnalysis analysis, string cnp)
        {
            using (UnitOfWork uow = new UnitOfWork())
            {
                if (cnp == "")
                {
                    throw new Exception("Donatorul nu a fost selectat");
                }
                var donor         = uow.DonorRepository.GetAll().Where(d => d.CNP == cnp).FirstOrDefault();
                var donorAnalysis = uow.MedicalAnalysisRepository.GetAll().Include(da => da.BloodBag).Where(ma => ma.DonorId == donor.Id && ma.IsFilled == false).FirstOrDefault();
                if (donorAnalysis == null)
                {
                    throw new Exception("Punga de sange prelevata nu a fost adaugata inca");
                }
                CopyAnalysisDetailsToDb(uow, donorAnalysis, analysis);

                if (IsNotValidBloodBag(analysis))
                {
                    donorAnalysis.BloodBag.Status = BloodBagStatus.Rejected;
                    uow.BloodBagRepository.Update(donorAnalysis.BloodBag);
                    uow.Save();
                    throw new Exception("Analize adaugate. Punga de sange nu poate fi utilizata!");
                }

                donorAnalysis.BloodBag.Status = BloodBagStatus.Accepted;
                uow.BloodBagRepository.Update(donorAnalysis.BloodBag);
                uow.Save();
            }
        }
コード例 #3
0
 public static MedicalAnalysesDateModelView ToMedicalAnalysisDate(MedicalAnalysis analysis)
 {
     return(new MedicalAnalysesDateModelView
     {
         Id = analysis.Id,
         Date = analysis.DateAndTime.ToString()
     });
 }
コード例 #4
0
 public static MedicalAnalysisViewModel ToMedicalAnalysisViewModel(MedicalAnalysis analysis)
 {
     return(new MedicalAnalysisViewModel
     {
         ALTLevel = analysis.ALTLevel,
         HepatitisB = analysis.HepatitisB,
         HepatitisC = analysis.HepatitisC,
         HIV = analysis.HIV,
         HTLV = analysis.HTLV,
         Sifilis = analysis.Sifilis,
         DateAndTime = analysis.DateAndTime,
         RejectedOtherCauses = analysis.RejectedOtherCauses,
         Observations = analysis.Observations
     });
 }
コード例 #5
0
 public void CopyAnalysisDetailsToDb(UnitOfWork uow, MedicalAnalysis dbAnalysis, MedicalAnalysis analysis)
 {
     dbAnalysis.ALTLevel            = analysis.ALTLevel;
     dbAnalysis.HepatitisB          = analysis.HepatitisB;
     dbAnalysis.HepatitisC          = analysis.HepatitisC;
     dbAnalysis.HIV                 = analysis.HIV;
     dbAnalysis.HTLV                = analysis.HTLV;
     dbAnalysis.Sifilis             = analysis.Sifilis;
     dbAnalysis.DateAndTime         = analysis.DateAndTime;
     dbAnalysis.RejectedOtherCauses = analysis.RejectedOtherCauses;
     dbAnalysis.Observations        = analysis.Observations;
     dbAnalysis.DateAndTime         = DateTime.Now;
     dbAnalysis.IsFilled            = true;
     uow.MedicalAnalysisRepository.Update(dbAnalysis);
     uow.Save();
 }
コード例 #6
0
        private static async Task SeedBloodStockForCenters(ApplicationDbContext context, UserManager <ApplicationUser> userManager)
        {
            var      center1   = context.Centers.Where(c => c.CenterName == "Centru Donare Sânge Cluj-Napoca").FirstOrDefault();
            var      donor1    = context.Donors.Where(d => d.FirstName == "Laura").FirstOrDefault();
            var      donor2    = context.Donors.Where(d => d.FirstName == "Bogdan").FirstOrDefault();
            BloodBag bloodbag1 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Accepted,
                Stage     = BloodBagStage.Qualification,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag1);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis1 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag1,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis1);
            context.SaveChanges();

            BloodBag bloodbag2 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Waiting,
                Stage     = BloodBagStage.Sampling,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag2);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis2 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag2,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis2);
            context.SaveChanges();

            BloodBag bloodbag3 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Accepted,
                Stage     = BloodBagStage.Qualification,
                BloodType = BloodTypes.O1,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag3);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis3 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag3,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor2,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis3);
            context.SaveChanges();

            BloodBag bloodbag4 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Rejected,
                Stage     = BloodBagStage.Sampling,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag4);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis4 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag4,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = true,
                Observations        = "S-a găsit prea multă grăsime în sânge.",
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis4);
            context.SaveChanges();
        }
コード例 #7
0
        public bool IsNotValidBloodBag(MedicalAnalysis analysis)
        {
            var donorHasADisease = analysis.Sifilis || analysis.HTLV || analysis.HIV || analysis.HepatitisB || analysis.HepatitisB || analysis.HTLV || analysis.ALTLevel;

            return(donorHasADisease || analysis.RejectedOtherCauses);
        }