示例#1
0
 public PedidoTrocaTurnosMedicosController(HospitalDbContext context)
 {
     _context = context;
 }
示例#2
0
        public static void Main(string[] args)
        {
            HospitalDbContext hospitalDbContext = new HospitalDbContext();

            hospitalDbContext.Database.Migrate();
        }
 public AppoinmentRepository(HospitalDbContext hospitalDbContext)
 {
     _hospitalDbContext = hospitalDbContext;
 }
示例#4
0
 private static void SeedMedicaments(HospitalDbContext context)
 {
     MedicamentGenerator.InitialMedicamentSeed(context);
 }
示例#5
0
 public HorarioPacientesController(HospitalDbContext context)
 {
     _context = context;
 }
 public WardRepository(HospitalDbContext context) : base(context)
 {
 }
示例#7
0
 public NursesController(HospitalDbContext context)
 {
     _context = context;
 }
 public UsuariosController(HospitalDbContext context)
 {
     _context = context;
 }
示例#9
0
 public HospitalController(HospitalDbContext hospitalDbContext)
 {
     this.hospitalDbContext = hospitalDbContext;
 }
示例#10
0
 public EstadosController(HospitalDbContext context)
 {
     _context = context;
 }
示例#11
0
 public ValuesController(HospitalDbContext dbContext)
 {
     this.dbContext = dbContext;
 }
示例#12
0
 public static void Generate(string medicamentName, HospitalDbContext context)
 {
     context.Medicaments.Add(new Medicament(medicamentName));
 }
示例#13
0
 public Cw11Controller(HospitalDbContext context)
 {
     _context = context;
 }
示例#14
0
 /*
  * @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;
 }
示例#16
0
 public HorarioATrocarEnfermeiroesController(HospitalDbContext context)
 {
     _context = context;
 }
 public PatientApiController(HospitalDbContext _hosdb)
 {
     _hospitalDbContext = _hosdb;
 }
示例#18
0
        public static void Main(string[] args)
        {
            HospitalDbContext db = new HospitalDbContext();

            db.Database.EnsureCreated();
        }
示例#19
0
 public PatientRepository(HospitalDbContext context) : base(context)
 {
 }
 public MedicineService(HospitalDbContext db, IMapper mapper)
 {
     this.db     = db;
     this.mapper = mapper;
 }
示例#21
0
 public GrausController(HospitalDbContext context)
 {
     _context = context;
 }
 public PatientAPIController(HospitalDbContext hospitalDb, IMapper mapper)
 {
     _hospitalDbContext = hospitalDb;
     _mapper            = mapper;
 }
示例#23
0
 private static void SeedPrescriptions(HospitalDbContext context)
 {
     PrescriptionGenerator.InitialPrescriptionSeed(context);
 }
示例#24
0
        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;
 }
示例#26
0
        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);
        }
示例#27
0
 public DoctorsController(HospitalDbContext context)
 {
     _context = context;
 }
示例#28
0
 public ProductRepository(HospitalDbContext context) : base(context)
 {
 }
示例#29
0
 public HomeController(HospitalDbContext context)
 {
     _context = context;
 }
 public PacienteController(HospitalDbContext context)
 {
     this.context = context;
 }