public void Seed(DiagnoseMeDbContext context) { if(!context.Partners.Any()) { var ministryOfEducation = new PartnerSeedModel() { Name = "МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА", Description = "Министерство на образованието и науката на Република България.", Website = "http://www.mon.bg/", Logo = "http://www.mon.bg/pics/big/coat_of_arms.png", JoinedOn = DateTime.UtcNow, PartnershipLevel = PartnershipLevelType.Gold }; var ministryOfHealth = new PartnerSeedModel() { Name = "Министерство на Здравеопазването", Description = "Министерство на Здравеопазването на Република България", Website = "http://www.mh.government.bg/bg/", Logo = "http://www.mh.government.bg/static/images/Ministry_of_Health-logo.1da2a1b6684e.svg", JoinedOn = DateTime.UtcNow, PartnershipLevel = PartnershipLevelType.Diamond }; this.SeedPartner(ministryOfEducation, context); this.SeedPartner(ministryOfHealth, context); } }
public void SeedUser(UserSeedModel model, DiagnoseMeDbContext context) { if (!context.Users.Any(u => u.UserName == model.UserName)) { var userStore = new UserStore<User>(context); var userManager = new UserManager<User>(userStore); var user = new User { UserName = model.UserName, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Avatar = model.Avatar }; IdentityResult result = userManager.Create(user, model.Password); if (!result.Succeeded) { throw new OperationCanceledException(result.Errors.First()); } if (model.Role != null) { userManager.AddToRole(user.Id, model.Role); } context.SaveChanges(); } }
public void Seed(DiagnoseMeDbContext context) { if(!context.Rooms.Any()) { var generator = new Random(); var users = context.Users.ToList(); for (int i = 1; i <= 36; i++) { var creator = users[generator.Next(0, users.Count)]; var room = new Room() { Context = Guid.NewGuid(), Name = "Room " + i, CreatorId = creator.Id }; creator.Rooms.Add(room); context.Users.AddOrUpdate(creator); } context.SaveChanges(); } }
public void Seed(DiagnoseMeDbContext context) { if (!context.MedicalQuestionResponses.Any()) { var generator = new Random(); var users = context.Users.ToList(); var questions = context.MedicalQuestions.ToList(); for (int i = 1; i <= 100; i++) { var urgencyType = generator.Next(1, 3 + 1); var author = users[generator.Next(0, users.Count)]; var question = questions[generator.Next(0, questions.Count)]; var response = new MedicalQuestionResponse() { Content = "Response content " + i }; question.MedicalQuestionsResponses.Add(response); author.MedicalQuestionsResponses.Add(response); context.MedicalQuestions.AddOrUpdate(question); context.Users.AddOrUpdate(author); } context.SaveChanges(); } }
public void Seed(DiagnoseMeDbContext context) { if (!context.MedicalQuestions.Any()) { var generator = new Random(); var users = context.Users.ToList(); for (int i = 1; i <= 16; i++) { var urgencyType = generator.Next(1, 3 + 1); var author = users[generator.Next(0, users.Count)]; var question = new MedicalQuestion() { Content = "Question content " + i, Title = "Question title " + i, UrgencyType = (MedicalQuestionUrgencyType)urgencyType }; author.MedicalQuestionsAsked.Add(question); context.Users.AddOrUpdate(author); } context.SaveChanges(); } }
public void SeedRole(string roleName, DiagnoseMeDbContext context) { var store = new RoleStore<IdentityRole>(context); var manager = new RoleManager<IdentityRole>(store); var role = new IdentityRole { Name = roleName }; manager.Create(role); context.SaveChanges(); }
public void Seed(DiagnoseMeDbContext context) { if (!context.Roles.Any()) { this.SeedRole(ServicesConstants.AdministratorRoleName, context); this.SeedRole(ServicesConstants.ModeratorRoleName, context); this.SeedRole(ServicesConstants.DoctorRoleName, context); } }
public void Seed(DiagnoseMeDbContext context) { if (context.Symptoms.Any()) { return; } var symptomsNamesAsString = @"главоболие; виене на свят; разстройство на съня; мозъчна тромбоза с парализа на определена група мускули; смущения в говора; влошаване на страничното периферно зрение; нарастване на размера на черепа; нарастване на носа; нарастване на ушните миди; нарастване на езика; задебеляване на устните; бяла коса; розово-бяла кожа която не потъмнява от слънцето; сини или червени ириси на очите; кихане; течащ или запушен нос; сърбежи на очите и кожата; повръщане; висока температура; болки в корема; повръщане на кръв; тежка диария; настинка; пъпки; язва; суха кашлица; кихане; хрема; болки в гърлото; температура; болки във венците; кървене на венците; чувство на умора; повишена температура; болка в мускулите и ставите; главоболие и възпалено гърло; повръщане; диария; болки в корема; тремор в покой(най-често по пръстите на ръцете); ригор; ступор; когнитивни дефицити; депресия; деменция; синузит; главоболие; кашлица с оскъдни жилави белезникави храчки; кръвохрачене; задух при усилие и в покой; болки и бодежи в гръдния кош; туберкулоза; белодробно сърце; дихателна и сърдечна недостатъчност с прогресиращ ход; повишена функция на щитовидната жлеза; неправилно хранене (особено в детската възраст); влажна кашлица; температура; втрисане; недостиг на въздух; остра или пронизваща болка в гърдите при дълбоко поемане на въздух и повишена дихателна честота; зачервяване и оток на ушната мида; обилно отделяне на рядка ушна кал; сърбеж; дразнене; чувство за наличие на чуждо тяло в ухото; слаби болки; намаляване на слуха; втрисане с изпотяване и рязко влошаване на общото състояние; нарастваща слабост; загуба на апетит; хеморагична диатеза – епистаксис; гингиворагии; подкожни кръвоизливи; генитални кръвоизливи; слабост; отпадналост; дискомфорт; слаба концентрация; диспнея (затруднено дишане); болка в долния десен край на корема; ускорен пулс; повишена телесна температура (до 38°С); гадене; повръщане; болки в колената; подуване; зачервяване на лакътя или коляното; затопляне на мястото; ограничаване на движенията; усещане за триене; отпадналост; лесна уморяемост; главоболие; намален мускулен тонус; отслабени сухожилни рефлекси; двойно виждане (диплопия); фотофобия; разширяване на зениците; нистагъм; страбизъм; диспнея (затруднено дишане); неподвижност на мекото небце; дисфагия (затруднено преглъщане); пресипване на гласа (афония); липса на гълтателен рефлекс; бяло течение; кръвотечение; болки в половите органи; горещина и отичане на половите органи; слепване между гланса и препуциума; подуване при уриниране; голяма чувствителност; спазъм при който съвкуплението става невъзможно; остра болка; треперене; сърцебиене; тъпи болки в таза ирадииращи към ануса, тестисите или вътрешната част на бедрата; проблеми с ерекцията; парене и болка при уриниране и еякулация"; var symptomsNamesAsList = new HashSet<string>( symptomsNamesAsString .Split(';') .Select(x => x.Trim()) .ToList()); foreach (var symptomName in symptomsNamesAsList) { var symptom = context.Symptoms.SingleOrDefault(x => x.Name == symptomName); if (symptom == null) { symptom = new Symptom { Name = symptomName, Diseases = null }; context.Symptoms.AddOrUpdate(x => x.Name, symptom); context.SaveChanges(); } } }
public void SeedPartner(PartnerSeedModel model, DiagnoseMeDbContext context) { var partner = new Partner() { Name = model.Name, Description = model.Description, JoinedOn = model.JoinedOn, Website = model.Website, Logo = model.Logo, PartnershipLevel = model.PartnershipLevel }; context.Partners.AddOrUpdate(partner); context.SaveChanges(); }
public void Seed(DiagnoseMeDbContext context) { if(!context.Feedbacks.Any()) { var generator = new Random(); for (int i = 1; i <= 40; i++) { var feedback = new Feedback() { SenderEmail = "feedbackSender" + i + "@yahoo.com", Content = "Feedback content " + i, Title = "Feedback title " + i, Type = (FeedbackType)generator.Next(1, 6) }; context.Feedbacks.AddOrUpdate(feedback); } context.SaveChanges(); } }
public void Seed(DiagnoseMeDbContext context) { if (!context.Users.Any()) { var administrator = new UserSeedModel() { UserName = "******", Email = "*****@*****.**", FirstName = "Ivan", LastName = "Kolev", Password = "******", Avatar = "http://thesocialmediamonthly.com/wp-content/uploads/2015/08/photo.png", Role = ServicesConstants.AdministratorRoleName }; var moderator = new UserSeedModel() { UserName = "******", Email = "*****@*****.**", FirstName = "George", LastName = "Georgiev", Password = "******", Avatar = "http://thesocialmediamonthly.com/wp-content/uploads/2015/08/photo.png", Role = ServicesConstants.ModeratorRoleName }; var doctor = new UserSeedModel() { UserName = "******", Email = "*****@*****.**", FirstName = "Slobodan", LastName = "Milosevic", Password = "******", Avatar = "http://thesocialmediamonthly.com/wp-content/uploads/2015/08/photo.png", Role = ServicesConstants.DoctorRoleName }; var basicMaleUser = new UserSeedModel() { UserName = "******", Email = "*****@*****.**", FirstName = "John", LastName = "Malkovich", Password = "******", Avatar = "http://thesocialmediamonthly.com/wp-content/uploads/2015/08/photo.png" }; var basicFemaleUser = new UserSeedModel() { UserName = "******", Email = "*****@*****.**", FirstName = "Lea", LastName = "Malkovich", Password = "******", Avatar = "http://thesocialmediamonthly.com/wp-content/uploads/2015/08/photo.png" }; this.SeedUser(administrator, context); this.SeedUser(moderator, context); this.SeedUser(doctor, context); this.SeedUser(basicMaleUser, context); this.SeedUser(basicFemaleUser, context); } }
public void SeedDisease(DiagnoseMeDbContext context, DiseaseSeedModel model) { var symptomsNames = new HashSet<string>(model.Symptoms.Split(';').Select(x => x.Trim()).ToList()); // Build the Symptoms var symptoms = new HashSet<Symptom>(); foreach (var symptomName in symptomsNames) { var symptom = this.ExtractedSymptoms.SingleOrDefault(x => x.Name == symptomName); // If symptom not found in our list => get it from database if (symptom == null) { symptom = context.Symptoms.SingleOrDefault(x => x.Name == symptomName); // If symptom not found in db => create and insert it if (symptom == null) { symptom = new Symptom() { Name = symptomName }; context.Symptoms.AddOrUpdate(x => x.Name, symptom); } this.ExtractedSymptoms.Add(symptom); } symptoms.Add(symptom); } // Build the Disease var disease = new Disease() { Name = model.Name, Description = model.Description, Occurrence = model.Occurrence, Target = model.Target, Symptoms = symptoms }; context.Diseases.AddOrUpdate(x => x.Name, disease); context.SaveChanges(); }
public void Seed(DiagnoseMeDbContext context) { if (context.Diseases.Any()) { return; } var diseases = new List<DiseaseSeedModel> { new DiseaseSeedModel { Name = "Атеросклероза", Description = "Атеросклерозата е хронично, прогресиращо заболяване, което засяга вътрешния слой на големите и средните артерии на организма. Във вътрешния слой на артериите се отлагат мастни вещества и стените на съдовете стават по-дебели и по-твърди.", Symptoms = "главоболие; виене на свят; разстройство на съня; мозъчна тромбоза с парализа на определена група мускули; смущения в говора", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Акромегалия", Description = "Акромегалията е заболяване, причинено от свръхпроизводство на хормона соматотропин от хипофизата – най-често (около 90 %) от доброкачествен хипофизен тумор – аденом, който продуцира самостоятелно и неконтролируемо хормона – след завършването на растежа на индивида. Проявява се в нарастване на крайни части на тялото (длани, стъпала, пръсти, нос, челюсти), смущения взрението.", Symptoms = "влошаване на страничното периферно зрение; нарастване на размера на черепа; нарастване на носа; нарастване на ушните миди; нарастване на езика; задебеляване на устните", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Албинизъм", Description = "Албинизъм е наследствено заболяване, което засяга очите и/или кожата. Предизвиква се от нарушение в образуването на пигмента меланин в кожата, в резултат на отклонения в активността на ензима тирозиназа.", Symptoms = "бяла коса; розово-бяла кожа която не потъмнява от слънцето; сини или червени ириси на очите", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Алергия", Description = "Алергията представлява повишена чувствителност на организма, обикновено към безвредни субстанции от околната среда – антигени, след предшестващ контакт с тях. В този случай антигените са известни под името алергени, а свръхчувствителността е в резултат на прекомерната защитна реакция на имунната система. Тази реакция е придобита, предвидима и краткотрайна. ", Symptoms = "кихане; течащ или запушен нос; сърбежи на очите и кожата", Occurrence = DiseaseOccurrenceType.VeryOften, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Антракс", Description = "Антраксът (от старогръцки: ἄνθραξ – въглен; латинско име: Pustula maligna; на български известен и като синя пъпка, сибирска язва, въглен и злокачествен оток) е остро заразно заболяване, което се характеризира с тежка интоксикация. Болестта е зооноза, която се разпространява главно от трупове на заразени и умрели домашни и диви животни. По хората се разпространява чрез контакт със заразени животни, заразена почва, месо и предмети, имали досег с трупа.", Symptoms = "повръщане; висока температура; болки в корема; повръщане на кръв; тежка диария; настинка; пъпки; язва", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Бронхит", Description = "Бронхит е възпаление на бронхите на белите дробове. Болестта се проявява в две форми: остър бронхит и хроничен бронхит.", Symptoms = "суха кашлица; кихане; хрема; болки в гърлото; температура", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Гингивит", Description = "Гингивитът е възпаление на венците, причинено от наслагване на плака. То е обикновено явление при възрастните, а бременните и болните от диабет са предразпожени към него.", Symptoms = "болки във венците; кървене на венците", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Ебола", Description = "Ебола е изключително заразна болест. В началния период на заразяването вирусоносителят отделя вируси с всички свои телесни секрети (пот, кръв, лимфа,слюнка, урина, семенна течност, фекалии), като след известен период вирусът се отделя и от разрушените от него клетки на епидермиса и тогава дори докосването до кожата може да причини заразяване.", Symptoms = "чувство на умора; повишена температура; болка в мускулите и ставите; главоболие и възпалено гърло; повръщане; диария; болки в корема", Occurrence = DiseaseOccurrenceType.VeryRare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Паркинсон", Description = "Болест на Паркинсон (БП) (на англ. Parkinson's disease (PD)) е неврологично заболяване, характеризирано с дегенерация на допаминергичните (произвеждащи допамин) неврони в субстанция нигра.", Symptoms = "тремор в покой(най-често по пръстите на ръцете); ригор; ступор; когнитивни дефицити; депресия; деменция", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Менингит", Description = "Менингит (на латински: Meningitis) се нарича възпаление на мозъчната обвивка на главния и гръбначния мозък. В зависимост от причинителя бива бактериален, вирусен или асептичен. В зависимост от ексудата бива гноен, серозен и др., като най-често срещаните са гнойните менингити. Менингитът обикновено възниква в резултат на инфекциозни заболявания и обикновено се проявява като един от клиничните признаци на заболяването. Най-честите симптоми биват болка в областта на главата, болка и неподвижност на врата, промяна във фоточуствителността и околните звуци. Менингитите нерядко оставят трайни негативни последици върху здравето.", Symptoms = "синузит; главоболие", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Силикоза", Description = "Силикозата е най-разпространеното професионално заболяване. То се причинява от вдишване на прах от кварц (свободен сицилиев двуокис) и отлагането му в белите дробове. Това е един от видовете пневмокониозов, неизлечимо и необратимо заболяване.", Symptoms = "кашлица с оскъдни жилави белезникави храчки; кръвохрачене; задух при усилие и в покой; болки и бодежи в гръдния кош; туберкулоза; белодробно сърце; дихателна и сърдечна недостатъчност с прогресиращ ход", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Остеопороза", Description = "Остеопороза (гр. osteo – кост и poros – пора) e прогресиращо метаболитно заболяване на скелета. В резултат от разрушаване на колагеновата матрица костите изтъняват и губят плътността си. Нарушава се равновесието между процесите на изграждане и разграждане на костната тъкан в полза на разграждането.", Symptoms = "повишена функция на щитовидната жлеза; неправилно хранене (особено в детската възраст)", Occurrence = DiseaseOccurrenceType.VeryOften, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Пневмония", Description = "Пневмонията е възпаление на белите дробове.Заболяването засяга поотделно, но по-често едновременно, извършващите газообмена между вдишания въздух и кръвта алвеоли и заобикалящата ги белодробна тъкан, наречена интерстициум, при което се нарушава нормалния процес на дишане. Пневмонията може да бъде предизвикана от различни причини, като инфектиране с бактерии, вируси, гъби или паразити, от химическо или физическо нараняване на дробовете, някои лекарства и други състояния, като например автоимунни заболявания.", Symptoms = "влажна кашлица; температура; втрисане; недостиг на въздух; остра или пронизваща болка в гърдите при дълбоко поемане на въздух и повишена дихателна честота", Occurrence = DiseaseOccurrenceType.VeryOften, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Отит", Description = "Отитът (на латински: Otitis) е диагноза, с която се означава наличието на възпалителен процес в областта на ушите.", Symptoms = "зачервяване и оток на ушната мида; обилно отделяне на рядка ушна кал; сърбеж; дразнене; чувство за наличие на чуждо тяло в ухото; слаби болки; намаляване на слуха", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Левкемия", Description = "Левкемията е неопластично заболяване с произход от костния мозък, което се характеризира с производството на патологични бели кръвни клетки, наричащи се още парабласти. Левкемия е термин, въведен за първи път от Рудолф Вирхов през XIX век. В буквален превод на български език означава „бяла кръв“. Среща се с различна честота във всички възрастови групи – от раждането до старостта. При децата е най-честото онкологично заболяване.", Symptoms = "втрисане с изпотяване и рязко влошаване на общото състояние; нарастваща слабост; загуба на апетит; хеморагична диатеза – епистаксис; гингиворагии; подкожни кръвоизливи; генитални кръвоизливи", Occurrence = DiseaseOccurrenceType.VeryRare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Анемия", Description = "Анемия (на гръцки: Ἀναιμία, „без кръв“, още малокръвие, безкръвие) е недостиг на червени кръвни телца и/или хемоглобин в кръвта. Това причинява намалена способност на кръвта да пренася кислород към тъканите, така причинявайки тъканна хипоксия. Следва да се спомене, че има полови различия в нормалните стойности на кръвните показатели: при мъжете броят на червените кръвни телца – хемоглобина и хематокрита, е по-висок от броя на жените.", Symptoms = "слабост; отпадналост; дискомфорт; слаба концентрация; диспнея (затруднено дишане)", Occurrence = DiseaseOccurrenceType.VeryOften, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Апендицит", Description = "Апендицит, понякога наричан апандисит, е възпаление на придатъка на сляпото черво – апендикса (от лат. Appendix caeci).", Symptoms = "болка в долния десен край на корема; ускорен пулс; повишена телесна температура (до 38°С); гадене; повръщане", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Бурсит", Description = "Бурсит се нарича възпаление на една или повече бурси – околоставните торбички, изпълнени със синовиална течност. Може да се прояви остро – внезапно начало на оплакванията, които са силно изразени, или хронично – с по-слабо изразени оплаквания, които се засилват на пристъпи.", Symptoms = "болки в колената; подуване; зачервяване на лакътя или коляното; затопляне на мястото; ограничаване на движенията; усещане за триене", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Ботулизъм", Description = "Ботулизъм е рядко срещано заболяване, дължащо се на токсико-инфекция възникнала от действието на ботулиновия токсин, който действа върху нервните клетки и предизвиква паралитичен ефект. Произвежда се от бактериите Clostridium botulinum.", Symptoms = "отпадналост; лесна уморяемост; главоболие; намален мускулен тонус; отслабени сухожилни рефлекси; двойно виждане (диплопия); фотофобия; разширяване на зениците; нистагъм; страбизъм; диспнея (затруднено дишане); неподвижност на мекото небце; дисфагия (затруднено преглъщане); пресипване на гласа (афония); липса на гълтателен рефлекс", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.Both }, new DiseaseSeedModel { Name = "Бяло течение", Description = "Дължи се на микробно заразяване на половите органи. Често течението се дължи и на глисти (острици), които живеят в задното черво, но преминават и във влагалището и го дразнят. Освен това при остро възпаление на самата матка, на лигавицата й, при полипи, тумори, трипер и др. също може да се яви бяло течение.", Symptoms = "бяло течение; кръвотечение; болки в половите органи; горещина и отичане на половите органи", Occurrence = DiseaseOccurrenceType.VeryOften, Target = DiseaseTargetType.FemalesOnly }, new DiseaseSeedModel() { Name = "Фимоза", Description = "Фимозата представлява стеснение на препуциума (финната кожа, която покрива главата на пениса), което не позволява свободното и безболезнено „заголване” на главата на пениса. Фимозата може да бъде вродена, но много по-често тя е вторична, следствие на локална инфекция или насилствени опити за отлепване, които оставят фиброзен цикатрикс.", Symptoms = "слепване между гланса и препуциума; подуване при уриниране", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.MalesOnly }, new DiseaseSeedModel() { Name = "Вагинизъм", Description = "Вагинизмът представлява свиване, спазъм на влагалището, при което половият акт става невъзможен. Най-често се среща при груби и неумели опити за полово сношение.", Symptoms = "голяма чувствителност; спазъм при който съвкуплението става невъзможно; остра болка; треперене; сърцебиене", Occurrence = DiseaseOccurrenceType.Rare, Target = DiseaseTargetType.FemalesOnly }, new DiseaseSeedModel() { Name = "Простатит ", Description = "Острият простатит обикновено е следствие на бактериална инфекция и се проявява с проблеми при уринирането, като при тежките форми, може да има и силна болка, висока температура и общо неразрположение на пациента. Хроничният простатит е сериозна инфекция на простатата, най-често следствие на недоизлекуван или рецидивиращ остър простатит. ", Symptoms = "тъпи болки в таза ирадииращи към ануса, тестисите или вътрешната част на бедрата; проблеми с ерекцията; парене и болка при уриниране и еякулация", Occurrence = DiseaseOccurrenceType.Often, Target = DiseaseTargetType.MalesOnly }, }; foreach (var diseaseSeedModel in diseases) { this.SeedDisease(context, diseaseSeedModel); } }