public PedidoTrocaTurnosMedicosController(HospitalDbContext context) { _context = context; }
public static void Main(string[] args) { HospitalDbContext hospitalDbContext = new HospitalDbContext(); hospitalDbContext.Database.Migrate(); }
public AppoinmentRepository(HospitalDbContext hospitalDbContext) { _hospitalDbContext = hospitalDbContext; }
private static void SeedMedicaments(HospitalDbContext context) { MedicamentGenerator.InitialMedicamentSeed(context); }
public HorarioPacientesController(HospitalDbContext context) { _context = context; }
public WardRepository(HospitalDbContext context) : base(context) { }
public NursesController(HospitalDbContext context) { _context = context; }
public UsuariosController(HospitalDbContext context) { _context = context; }
public HospitalController(HospitalDbContext hospitalDbContext) { this.hospitalDbContext = hospitalDbContext; }
public EstadosController(HospitalDbContext context) { _context = context; }
public ValuesController(HospitalDbContext dbContext) { this.dbContext = dbContext; }
public static void Generate(string medicamentName, HospitalDbContext context) { context.Medicaments.Add(new Medicament(medicamentName)); }
public Cw11Controller(HospitalDbContext context) { _context = context; }
/* * @param db * @param horario * @insert into HorariosEnfermeiro table the horario passed as the parameter */ private void UpdateHorario(HospitalDbContext db, HorarioMedico horario) { db.HorariosMedicos.Update(horario); db.SaveChanges(); }
public finance(HospitalDbContext asu) { _asu = asu; }
public HorarioATrocarEnfermeiroesController(HospitalDbContext context) { _context = context; }
public PatientApiController(HospitalDbContext _hosdb) { _hospitalDbContext = _hosdb; }
public static void Main(string[] args) { HospitalDbContext db = new HospitalDbContext(); db.Database.EnsureCreated(); }
public PatientRepository(HospitalDbContext context) : base(context) { }
public MedicineService(HospitalDbContext db, IMapper mapper) { this.db = db; this.mapper = mapper; }
public GrausController(HospitalDbContext context) { _context = context; }
public PatientAPIController(HospitalDbContext hospitalDb, IMapper mapper) { _hospitalDbContext = hospitalDb; _mapper = mapper; }
private static void SeedPrescriptions(HospitalDbContext context) { PrescriptionGenerator.InitialPrescriptionSeed(context); }
public async Task <IEnumerable <Entry> > FindDoctor(int departmentTitleId, EntrySearchFilter filter) { List <Entry> result = new List <Entry>(); using (HospitalDbContext db = _contextFactory.CreateDbContext()) { List <Change> allChanges = await db.Changes .AsQueryable() .OrderBy(c => c.DateTimeStart) .Where(c => c.Staff.Department.Title.Id == departmentTitleId && c.Staff.Department.Type == filter.DepartmentType) .Where(c => filter.IsDate ? (c.DateTimeStart.Date == filter.DateTime.Date) : (c.DateTimeStart.Date < DateTime.Now.AddDays(30))) .Include(c => c.Staff).ThenInclude(s => s.Department).ThenInclude(d => d.Title) //.Take(50) //подобрать оптимальное значение .ToListAsync(); for (int i = 0; i < allChanges.Count; i++) { Change change = allChanges[i]; //генерация виртуальных записей на текущую смену List <Entry> emptyEntries = new List <Entry>(); foreach (DateTime time in change.GetTimes()) { emptyEntries .Add(new Entry { EntryStatus = Enum.Parse <EntryStatus>("0"), CreateDateTime = DateTime.Now, TargetDateTime = time, DoctorDestination = change.Staff }); } //поиск уже существующих записей на текущую смену !Уходит много времени List <Entry> existEntries = await db.Entries .AsQueryable() .Where(e => e.DoctorDestination.Id == change.Staff.Id) .Where(e => e.TargetDateTime.Date == change.DateTimeStart.Date) .Include(e => e.DoctorDestination).ThenInclude(d => d.Department).ThenInclude(d => d.Title) .ToListAsync(); //объединение записей emptyEntries.AddRange(existEntries); //группировка с заменой совпадений var _result = emptyEntries //.OrderBy(e => e.TargetDateTime) .GroupBy(e => e.TargetDateTime) .Select(e => e.Last()) .Where(e => filter.IsFree ? e.EntryStatus == EntryStatus.Открыта : true) .GroupBy(r => r.DoctorDestination.Id) .Select(r => r.First()); //если свободные записи найдены, то все последующие смены этого доктора удаляются из очереди if (filter.IsNearest && _result.Count() != 0) { allChanges.RemoveAll(c => c.Staff.Id == change.Staff.Id && c.DateTimeStart >= change.DateTimeStart); i--; } result.AddRange(_result); } } return(result); }
public DoctorRepository(HospitalDbContext ctx) { this.ctx = ctx; }
public async Task <IEnumerable <Entry> > FindDoctor(string message, EntrySearchFilter filter) { List <Entry> result = new List <Entry>(); string _string = Regex.Replace(message.Trim(), @"\s+", " "); string[] words = _string.Split(' '); if (_string.Length > 2 || words[0] == "*") { if (words[0] == "*") { words[0] = ""; } using (HospitalDbContext db = _contextFactory.CreateDbContext()) { //Поиск смен по фильтру и строке List <Change> allChanges = await db.Changes .AsQueryable() .OrderBy(c => c.DateTimeStart) .Where(c => c.Staff.Department.Type == filter.DepartmentType) .Where(c => (filter.IsDate ? (c.DateTimeStart.Date == filter.DateTime.Date) : (c.DateTimeStart.Date < (DateTime.Now.AddDays(30))))) .Include(c => c.Staff).ThenInclude(s => s.Department).ThenInclude(d => d.Title) //Далее фильтрация происходит на клиенте, EF не дает добро на обработку сложных запросов сервером(в асинхронном режиме) //StringComparison только на клиенте, если рефакторить на сервер, то через ToLower .AsAsyncEnumerable() .Where(c => ( ((filter.IsName) ? ((words.Any(word => c.Staff.FirstName.Contains(word, StringComparison.CurrentCultureIgnoreCase)) ? 1 : 0) + (words.Any(word => c.Staff.MidName.Contains(word, StringComparison.CurrentCultureIgnoreCase)) ? 1 : 0) + (words.Any(word => c.Staff.LastName.Contains(word, StringComparison.CurrentCultureIgnoreCase)) ? 1 : 0)) : 0) + ((filter.IsQualification) ? (words.Any(word => (c.Staff.Qualification != null) && (c.Staff.Qualification.Contains(word, StringComparison.CurrentCultureIgnoreCase))) ? 1 : 0) : 0) + ((filter.IsDepartment) ? (words.Any(word => (c.Staff.Department.Title.Title != null) && (c.Staff.Department.Title.Title.Contains(word, StringComparison.CurrentCultureIgnoreCase))) ? 1 : 0) : 0) + ((filter.IsAdress) ? (words.Any(word => (c.Staff.Department.Adress.Street != null) && (c.Staff.Department.Adress.Street.Contains(word, StringComparison.CurrentCultureIgnoreCase))) ? 1 : 0) : 0) >= words.Count())) //.Take(50) //подобрать оптимальное значение .ToListAsync(); for (int i = 0; i < allChanges.Count; i++) { Change change = allChanges[i]; //генерация виртуальных записей на текущую смену List <Entry> emptyEntries = new List <Entry>(); foreach (DateTime time in change.GetTimes()) { emptyEntries .Add(new Entry { EntryStatus = Enum.Parse <EntryStatus>("0"), CreateDateTime = DateTime.Now, TargetDateTime = time, DoctorDestination = change.Staff }); } //поиск уже существующих записей на текущую смену !Уходит много времени List <Entry> existEntries = await db.Entries .AsQueryable() .Where(e => e.DoctorDestination.Id == change.Staff.Id) .Where(e => e.TargetDateTime.Date == change.DateTimeStart.Date) .Include(e => e.DoctorDestination).ThenInclude(d => d.Department).ThenInclude(d => d.Title) .ToListAsync(); //объединение записей emptyEntries.AddRange(existEntries); //группировка с заменой совпадений var _result = emptyEntries //.OrderBy(e => e.TargetDateTime) .GroupBy(e => e.TargetDateTime) .Select(e => e.Last()) .Where(e => (filter.IsFree) ? e.EntryStatus == EntryStatus.Открыта : true) .GroupBy(r => r.DoctorDestination.Id) .Select(r => r.First()); //если свободные записи найдены, то все последующие смены этого доктора удаляются из очереди if (filter.IsNearest && _result.Count() != 0) { allChanges.RemoveAll(c => c.Staff.Id == change.Staff.Id && c.DateTimeStart >= change.DateTimeStart); i--; } result.AddRange(_result); } } } return(result); }
public DoctorsController(HospitalDbContext context) { _context = context; }
public ProductRepository(HospitalDbContext context) : base(context) { }
public HomeController(HospitalDbContext context) { _context = context; }
public PacienteController(HospitalDbContext context) { this.context = context; }