public void CreateStudyDB(Study study, Inclusioncriteria inclusioncriteria) { //Adds the study to the database and saves _context.Study.Add(study); _context.SaveChanges(); //Retrieves the id from the study just saved and sets the study_id in inclusioncriteria. var dbStudy = (_context.Study.FirstOrDefault(stud => stud.Name == study.Name && stud.DateCreated == study.DateCreated)) ?? _context.Study.Local.FirstOrDefault(stud => stud.Name == study.Name && stud.DateCreated == study.DateCreated); inclusioncriteria.IdStudy = dbStudy.IdStudy; //Sets the direct study link with the generated ID if (dbStudy != null) { //Todo OBS!!! Direct Study link currently hardcoded - fix or rewrite when published. dbStudy.DirectStudyLink = "http://localhost:61728/ViewStudy/ViewStudy?studyID=" + dbStudy.IdStudy; _context.Study.Update(dbStudy); } //Saves the inclusioncriteria and the study link _context.Inclusioncriteria.Add(inclusioncriteria); _context.SaveChanges(); }
public void EditStudyDB(Study study, Inclusioncriteria inclusioncriteria) { Study oldStudy = _context.Study.FirstOrDefault(stud => stud.IdStudy == study.IdStudy); if (oldStudy != null) { oldStudy.Name = study.Name; oldStudy.Description = study.Description; oldStudy.Abstract = study.Abstract; oldStudy.Duration = study.Duration; oldStudy.EligibilityRequirements = study.EligibilityRequirements; oldStudy.Inclusioncriteria = study.Inclusioncriteria; oldStudy.Isdraft = study.Isdraft; oldStudy.Pay = study.Pay; oldStudy.Preparation = study.Preparation; oldStudy.Location = study.Location; _context.Study.Update(oldStudy); _context.SaveChanges(); } Inclusioncriteria oldInc = _context.Inclusioncriteria.FirstOrDefault(inc => inc.IdStudy == study.IdStudy); if (oldInc != null) { oldInc.Male = inclusioncriteria.Male; oldInc.Female = inclusioncriteria.Female; oldInc.English = inclusioncriteria.English; oldInc.MinAge = inclusioncriteria.MinAge; oldInc.MaxAge = inclusioncriteria.MaxAge; _context.Inclusioncriteria.Update(oldInc); _context.SaveChanges(); } }
public Inclusioncriteria GetInclusioncriteriaDB(int id) { Inclusioncriteria incCrit = _context.Inclusioncriteria.FirstOrDefault(inc => inc.IdStudy == id); return(incCrit); }
public List <Participant> GetAllEligibalParticipants(Inclusioncriteria criteria, int studyId) { List <Participant> participants = new List <Participant>(); List <int> PartIDs; if (_context.Study != null && _context.Inclusioncriteria != null && !(criteria.Male == false && criteria.Female == false)) { if (criteria.English) { //Sorterings-Algorithm! PartIDs = _context.Participant.Where(part => //Sorts by age GetAge(part.Age) > criteria.MinAge && GetAge(part.Age) < criteria.MaxAge && //Sorts by gender (criteria.Male == part.Gender || criteria.Female != part.Gender) && //Sort by languge part.English == criteria.English).ToList().Select(partID => partID.IdParticipant).ToList(); } else { //Sorterings-Algorithm! PartIDs = _context.Participant.Where(part => //Sorts by age GetAge(part.Age) > criteria.MinAge && GetAge(part.Age) < criteria.MaxAge && //Sorts by gender (criteria.Male == part.Gender || criteria.Female != part.Gender)).ToList().Select(partID => partID.IdParticipant).ToList(); } // Get all participant that are inrolled in this study List <int> EnrolledPartIDs = _context.Studyparticipant.Where(x => x.IdStudy == studyId) .Select(partID => partID.IdParticipant).ToList(); foreach (var id in EnrolledPartIDs) { try { PartIDs.Remove(id); } catch (Exception e) { throw; } } //List of participants to return foreach (var id in PartIDs) { participants.Add(_context.Participant.FirstOrDefault(parts => parts.IdParticipant == id)); } } if (participants == null) { participants = new List <Participant>(); } return(participants); }