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(); } }
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(); } }
public static MedicalAnalysesDateModelView ToMedicalAnalysisDate(MedicalAnalysis analysis) { return(new MedicalAnalysesDateModelView { Id = analysis.Id, Date = analysis.DateAndTime.ToString() }); }
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 }); }
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(); }
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(); }
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); }