示例#1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!(VisitManager.GetCurrentVisitor().IsLogined_Admin))
     {
         Response.Write("<script>alert('你还未登录或登录信息已过期!');location.href=\"Login.aspx\";</script>");
     }
 }
        /// <summary>
        /// Created a observations viewmodel of the specified registry/patient
        ///
        /// </summary>
        /// <param name="registry"></param>
        /// <returns>the observation viewmodel data-subject,body,date and author</returns>
        private List <ObservationsVM> GetObservationVM(ClinicRegistryManager registry)
        {
            ObservationsVM        vm = null;
            List <ObservationsVM> listObservationsVM = new List <ObservationsVM>();
            VisitManager          vManager           = null;

            db.Entry(registry).Reference(x => x.Staff_doctor).Load();
            //List<Observations> obs = db.Observations.Where(x => x.clinicalRegistry.ClinicRegistryManagerId == registry.ClinicRegistryManagerId).ToList();
            List <Observations> obs = SetListObservation(registry);

            foreach (Observations item in obs)
            {
                vManager = db.VisitManagers.Where(x => x.PatientVisitRegistry.ClinicRegistryManagerId == registry.ClinicRegistryManagerId).FirstOrDefault();

                if (vManager != null)
                {
                    vm               = new ObservationsVM();
                    vm.Subject       = item.subject;
                    vm.observationID = item.observations_ID;
                    vm.Date          = vManager.visit.Visit_Date;

                    vm.Author = db.ClinicRegistryManagers.Where(x => x.ClinicRegistryManagerId == registry.ClinicRegistryManagerId).FirstOrDefault().Staff_doctor.Name;
                }
                listObservationsVM.Add(vm);
            }

            return(listObservationsVM);
        }
        public IActionResult GetVisitorOverview(Guid id)
        {
            try
            {
                VisitorManager  visitorMng = new VisitorManager();
                VisitorResource visitor    = visitorMng.GetRecordById(id).ToVisitorResource();

                var result = new VisitorOverviewResource(visitor);
                VisitorNotificationManager notificationsMng = new VisitorNotificationManager();
                var notifications = notificationsMng.GetRecordsByVisitorId(id);
                result.Notifications = notifications.Select(n => n.ToVisitorNotificationResource()).ToList();

                VisitManager visitMng = new VisitManager();
                var          visits   = visitMng.GetRecordsByVisitorId(id);
                result.Visits = visits.Select(v => v.ToVisitResource()).ToList();

                PositiveCaseManager positiveCasesMng = new PositiveCaseManager();
                var positiveCases = positiveCasesMng.GetRecordsByVisitorId(id);
                result.PositiveCases = positiveCases.Select(v => v.ToPositiveCaseResource()).ToList();

                return(Ok(result));
            }
            catch (EntityValidationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(Problem());
            }
        }
示例#4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     bool[][] auths = VisitManager.GetCurrentVisitor().AdminAuthorities;
     if (auths == null || auths[1] == null)
     {
         Response.Write("<script>alert('你没有权限查看此页!');</script>");
     }
 }
示例#5
0
        public VisitsController()
        {
            _repo = new VisitRepository(_db);
            _doctorFacilityRepo = new DoctorFacilityRepository(_db);
            _scheduleRepo       = new ScheduleRepository(_db);


            _client          = new DpApi(AppSettings.ClientId, AppSettings.ClientSecret, (Locale)AppSettings.Locale);
            _scheduleManager = new ScheduleManager(_db, _client);
            _visitManager    = new VisitManager(_db, _client, _scheduleManager);
        }
示例#6
0
 public IActionResult GetAll()
 {
     try
     {
         VisitManager visitMng = new VisitManager();
         var          result   = visitMng.GetAllRecords().Select(v => v.ToVisitResource());
         return(Ok(result));
     }
     catch
     {
         return(Problem());
     }
 }
示例#7
0
        public IActionResult GetPositiveCase(Guid id)
        {
            try
            {
                PositiveCaseManager        positiveCaseMng = new PositiveCaseManager();
                VisitManager               visitMng        = new VisitManager();
                VisitorNotificationManager notificationMng = new VisitorNotificationManager();
                var positiveCase = positiveCaseMng.GetRecordById(id).ToPositiveCaseResource();

                // load visitor name (needed for the autocomplete component)
                VisitorManager visitorMng = new VisitorManager();
                var            visitor    = visitorMng.GetRecordById(positiveCase.VisitorId);
                positiveCase.VisitorName = visitor.Name;

                #region Determine if all users with colliding visits were notified

                // Set date to the last minute of the day to include all the visits from that day on the retrieved visits
                DateTime visitDate = positiveCase.VisitDate.Date.AddHours(23).AddMinutes(59);
                var      positiveCaseVisitsBefore = visitMng.GetUserVisitsBeforeDate(positiveCase.VisitorId, visitDate, 2).ToList();

                // Get colliding visits
                var collidingVisits = visitMng.GetCollidingVisits(positiveCaseVisitsBefore);

                positiveCase.AllUsersNotified = true;

                foreach (var collidingVisit in collidingVisits)
                {
                    bool notificationSent = notificationMng.GetRecordsByVisitorId(collidingVisit.Visitor.Id).Any(v => v.PositiveCase.Id == id);
                    if (!notificationSent)
                    {
                        positiveCase.AllUsersNotified = false;
                        break;
                    }
                }

                #endregion

                return(Ok(positiveCase));
            }
            catch (EntityNotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(Problem());
            }
        }
示例#8
0
        public IActionResult GetPositiveCaseOverview(Guid id)
        {
            try
            {
                PositiveCaseManager        positiveCaseMng = new PositiveCaseManager();
                VisitManager               visitMng        = new VisitManager();
                VisitorManager             visitorMng      = new VisitorManager();
                VisitorNotificationManager notificationMng = new VisitorNotificationManager();

                var positiveCase = positiveCaseMng.GetRecordById(id).ToPositiveCaseResource();
                var result       = new PositiveCaseOverviewResource(positiveCase);

                // load visitor name (needed for the autocomplete component)
                result.VisitorName = visitorMng.GetRecordById(positiveCase.VisitorId).Name;

                // Set date to the last minute of the day to include all the visits from that day on the retrieved visits
                result.VisitDate = result.VisitDate.Date.AddHours(23).AddMinutes(59);
                var positiveCaseVisitsBefore = visitMng.GetUserVisitsBeforeDate(result.VisitorId, result.VisitDate, 2).ToList();

                // Get colliding visits
                var collidingVisits = visitMng.GetCollidingVisits(positiveCaseVisitsBefore);


                foreach (var collidingVisit in collidingVisits)
                {
                    result.CollidingVisits.Add(new AffectedVisitsResource()
                    {
                        VisitId          = collidingVisit.Visitor.Id,
                        VisitDate        = collidingVisit.CheckIn,
                        NotificationSent = notificationMng.GetRecordsByVisitorId(collidingVisit.Visitor.Id).Any(v => v.PositiveCase.Id == id),
                        VisitorId        = collidingVisit.Visitor.Id,
                        VisitorName      = visitorMng.GetRecordById(collidingVisit.Visitor.Id).Name
                    });
                }
                result.AllUsersNotified = result.CollidingVisits.Any(c => !c.NotificationSent);

                return(Ok(result));
            }
            catch (EntityNotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(Problem(ex.Message));
            }
        }
示例#9
0
        private VisitsController SetupController(IEnumerable <Visit> visits = null, StringBuilder stringBuilder = null)
        {
            visits = visits ?? new List <Visit>();

            var visitDataStore = new MockVisitStore(visits.Select(model => VisitMapper.ToEntity(model)).ToList());

            var campaigns      = CampaignSamples.Get().Select(model => CampaignMapper.ToEntity(model)).ToList();
            var campaignStore  = new MockCampaignStore(campaigns);
            var campaignSearch = new SimpleCampaignSearch(campaignStore);
            var stringWriter   = new StringWriter(stringBuilder ?? new StringBuilder());

            var pushNotificationProviderFactory = new PushNotificationProviderFactory(stringWriter);

            var manager = new VisitManager(visitDataStore, campaignSearch, pushNotificationProviderFactory);

            return(new VisitsController(manager, logger: null));
        }
示例#10
0
 public IActionResult New(VisitResource visit)
 {
     try
     {
         VisitManager visitMng = new VisitManager();
         visitMng.Insert(visit.ToVisit());
         return(Ok());
     }
     catch (EntityValidationException ex)
     {
         return(BadRequest(ex.Message));
     }
     catch
     {
         return(Problem());
     }
 }
示例#11
0
 public IActionResult GetVisit(Guid id)
 {
     try
     {
         VisitManager visitMng = new VisitManager();
         var          result   = visitMng.GetRecordById(id).ToVisitResource();
         return(Ok(result));
     }
     catch (EntityNotFoundException ex)
     {
         return(BadRequest(ex.Message));
     }
     catch
     {
         return(Problem());
     }
 }
示例#12
0
        public IActionResult Update(VisitResource visit)
        {
            try
            {
                VisitManager visitMng = new VisitManager();
                var          visitDb  = visitMng.GetRecordById(visit.Id);
                if (visitDb == null)
                {
                    return(BadRequest("Invalid visit id!"));
                }
                visitDb.CheckIn  = visit.CheckIn;
                visitDb.CheckOut = visit.CheckOut;

                if (visitDb.Visitor.Id != visit.VisitorId)
                {
                    VisitorManager visitorMng = new VisitorManager();
                    Visitor        visitor    = visitorMng.GetRecordById(visit.VisitorId);
                    if (visitor == null)
                    {
                        return(BadRequest("Invalid visitor id!"));
                    }
                    visitDb.Visitor = visitor;
                }

                visitMng.Update(visitDb);
                return(Ok());
            }
            catch (EntityValidationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(Problem());
            }
        }
示例#13
0
        public IActionResult Delete(Guid id)
        {
            try
            {
                VisitManager visitMng  = new VisitManager();
                var          visitorDb = visitMng.GetRecordById(id);

                if (visitorDb == null)
                {
                    return(BadRequest("Invalid visit id!"));
                }

                visitMng.Delete(id);
                return(Ok());
            }
            catch (EntityValidationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(Problem());
            }
        }
示例#14
0
 public static List <VisitModel> ApiGetVisitsList(int userId)
 {
     return(VisitManager.GetVisitsList(userId));
 }