Beispiel #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Visit"/> class.
        /// </summary>
        /// <param name="staff">The staff.</param>
        /// <param name="appointmentDateTimeRange">The appointment date time range.</param>
        /// <param name="clinicalCase">The clinical case.</param>
        /// <param name="visitStatus">The visit status.</param>
        /// <param name="placeOfService">The place of service.</param>
        /// <param name="name">The name.</param>
        /// <param name="cptCode">The CPT code.</param>
        protected internal Visit(Staff staff, 
            DateTimeRange appointmentDateTimeRange,
            ClinicalCase clinicalCase,
            VisitStatus visitStatus,
            Location placeOfService,
            string name,
            string cptCode )
            : base(staff, appointmentDateTimeRange)
        {
            Check.IsNotNull ( clinicalCase, "Clinical case is required." );
            Check.IsNotNull ( visitStatus, "Visit status is required." );
            Check.IsNotNull ( placeOfService, "Location is required." );
            Check.IsNotNull ( name, "Name is required." );
            Check.IsNotNull ( cptCode, "CptCode is required." );

            if ( visitStatus.WellKnownName != WellKnownNames.VisitModule.VisitStatus.Scheduled )
            {
                throw new ArgumentException ( "Visits must always be created as scheduled visits." );
            }

            _clinicalCase = clinicalCase;
            _visitStatus = visitStatus;
            _serviceLocation = placeOfService;
            _name = name;
            _cptCode = cptCode;
            _activities = new List<Activity> ();
            _problems = new List<VisitProblem> ();
        }
        public Visit(Event _event)
        {
            Id                = Guid.NewGuid().ToString();
            TenantId          = _event.TenantId;
            StoreId           = _event.StoreId;
            PersonId          = _event.PersonId;
            SuggestedPersonId = _event.SuggestedPersonId;
            Confidence        = _event.Confidence;

            switch (_event.EventType)
            {
            case Event.EVENT_TYPE_ENTER:
                EnterOn     = _event.TimeStamp;
                VisitStatus = VisitStatus.Entered;
                break;

            case Event.EVENT_TYPE_PAYMENT:
                PaymentOn   = _event.TimeStamp;
                VisitStatus = VisitStatus.Entered;
                break;

            case Event.EVENT_TYPE_LEAVE:
                LeaveOn     = _event.TimeStamp;
                VisitStatus = VisitStatus.Left;
                break;

            default:
                VisitStatus = VisitStatus.None;
                break;
            }
        }
        /// <summary>
        /// <see cref="MyCompany.Visitors.Client.IVisitService"/>
        /// </summary>
        /// <param name="status"><see cref="MyCompany.Visitors.Client.IVisitService"/></param>
        /// <param name="visitId"><see cref="MyCompany.Visitors.Client.IVisitService"/></param>
        /// <returns><see cref="MyCompany.Visitors.Client.IVisitService"/></returns>
        public async Task UpdateStatus(int visitId, VisitStatus status)
        {
            string url = String.Format(CultureInfo.InvariantCulture
                                       , "{0}api/visits/{1}/update/{2}", _urlPrefix, visitId, (int)status);

            await base.PutAsync <VisitStatus>(url, status);
        }
Beispiel #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Visit"/> class.
        /// </summary>
        /// <param name="staff">The staff.</param>
        /// <param name="appointmentDateTimeRange">The appointment date time range.</param>
        /// <param name="clinicalCase">The clinical case.</param>
        /// <param name="visitStatus">The visit status.</param>
        /// <param name="placeOfService">The place of service.</param>
        /// <param name="name">The name.</param>
        /// <param name="cptCode">The CPT code.</param>
        protected internal Visit(Staff staff,
                                 DateTimeRange appointmentDateTimeRange,
                                 ClinicalCase clinicalCase,
                                 VisitStatus visitStatus,
                                 Location placeOfService,
                                 string name,
                                 string cptCode) : base(staff, appointmentDateTimeRange)
        {
            Check.IsNotNull(clinicalCase, "Clinical case is required.");
            Check.IsNotNull(visitStatus, "Visit status is required.");
            Check.IsNotNull(placeOfService, "Location is required.");
            Check.IsNotNull(name, "Name is required.");
            Check.IsNotNull(cptCode, "CptCode is required.");

            if (visitStatus.WellKnownName != WellKnownNames.VisitModule.VisitStatus.Scheduled)
            {
                throw new ArgumentException("Visits must always be created as scheduled visits.");
            }

            _clinicalCase    = clinicalCase;
            _visitStatus     = visitStatus;
            _serviceLocation = placeOfService;
            _name            = name;
            _cptCode         = cptCode;
            _activities      = new List <Activity> ();
            _problems        = new List <VisitProblem> ();
        }
Beispiel #5
0
        protected async override void OnAppearing()
        {
            base.OnAppearing();
            var visitstate = authsetting.ReadVisitId();

            if (visitstate.Count > 0)
            {
                VisitStatus status = await viewModel.LoadOrderState(visitstate[VISIT_ID_KEY]);

                int visit_int = status.Status;

                if (0 < visit_int & visit_int <= 5)
                {
                    SetQRCode(true, true);
                }
                if (visit_int >= 6 & visit_int < 10)
                {
                    SetWorksList(visitstate[VISIT_ID_KEY]);
                }
                if (visit_int >= 10 & visit_int < 12)
                {
                    // сделано так, что если не получен пуш с кодом, то удалять заезд и начинать с начала ибо пока что более неоткуда брать этот код
                    if (visitstate.ContainsKey(QR_KEY))
                    {
                        SetWorksList(visitstate[VISIT_ID_KEY]);
                        ShowClosedQRCode(visitstate[QR_KEY]);
                    }
                    else
                    {
                        authsetting.RemoveVisitId(visit_int.ToString());
                        SetQRCode(true, true);
                    }
                }
                if (visit_int == 12 || visit_int == 13)
                {
                    authsetting.RemoveVisitId(visit_int.ToString());
                    SetQRCode(true, true);
                }
            }
            else
            {
                SetQRCode(true, true);
            }
            MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_6, (obj, visitId) => {
                SetWorksList(visitId);
            });
            MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_10, (obj, qr) => {
                ShowClosedQRCode(qr);
            });
            MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_12, (obj, visitId) => {
                SetQRCode(true, true);
            });
            MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_13, (obj, visitId) => {
                SetQRCode(true, false);
            });
        }
Beispiel #6
0
 public Ticket(string uuid, long ticketNumber, DateTime plannedStartTime, DateTime plannedEndTime,
               long specialistId, string customerName)
 {
     Uuid             = uuid;
     TicketNumber     = ticketNumber;
     PlannedStartTime = plannedStartTime;
     PlannedEndTime   = plannedEndTime;
     StartTime        = null;
     EndTime          = null;
     SpecialistId     = specialistId;
     CustomerName     = customerName;
     Status           = VisitStatus.WAITING;
 }
Beispiel #7
0
        public VisitStatus Visit(TData data, TObj obj)
        {
            if (MustVisit != MustVisitStatus.Yes)
            {
                return(VisitFields(data, obj, VisitStatus.Continue));
            }
            VisitorScope <TData> scope  = process(data, obj);
            VisitStatus          result = scope.Status == VisitStatus.Continue
                ? VisitFields(data, obj, scope.Status)
                : scope.Status;

            scope.After?.Invoke();
            return(result);
        }
Beispiel #8
0
 private VisitStatus VisitFields(
     TData data,
     TObj obj,
     VisitStatus defaultStatus)
 {
     foreach (var fieldVisitor in enabledFieldVisitorsCache)
     {
         if (fieldVisitor.Visit(data, obj) == VisitStatus.Exit)
         {
             return(VisitStatus.Exit);
         }
     }
     return(defaultStatus);
 }
Beispiel #9
0
        public async Task UpdateStatus(int visitId, VisitStatus status)
        {
            var visit = await _visitRepository.GetCompleteInfoAsync(visitId, PictureType.Small);

            if (visit != null)
            {
                visit.Status = status;
                await _visitRepository.UpdateAsync(visit);

                var employee = await _employeeRepository.GetCompleteInfoAsync(visit.EmployeeId, PictureType.Small);

                if (employee != null && !String.IsNullOrWhiteSpace(employee.Email) && status == VisitStatus.Arrived)
                {
                    VisitorsNotificationHub.NotifyVisitArrived(visit, employee.Email);
                }
            }
        }
Beispiel #10
0
        public Visit(int idUser, DateTime date)
        {
            _id = 0;
            _idUser = idUser;
            _dateVisit = date;

            _idULPU = 0;
            _plan = string.Empty;
            _fact = string.Empty;
            _next = string.Empty;
            _idActivity = 1;
            _commRD = string.Empty;
            _status = VisitStatus.Planed;
            _haveNewVisit = false;

            Init();
            SetDefaultHour();
            SetEditRightVisit();
        }
Beispiel #11
0
        public Visit(Visit visit1, DateTime date)
        {
            _id             = 0;
            this._idUser    = visit1._idUser;
            this._dateVisit = date;
            this._idULPU    = visit1._idULPU;
            this._plan      = visit1._plan;

            _fact         = string.Empty;
            _next         = string.Empty;
            _idActivity   = 1;
            _commRD       = string.Empty;
            _status       = VisitStatus.Planed;
            _haveNewVisit = false;

            Init();
            SetDefaultHour();
            SetEditRightVisit();
        }
Beispiel #12
0
        public Visit(int idUser, DateTime date)
        {
            _id        = 0;
            _idUser    = idUser;
            _dateVisit = date;

            _idULPU       = 0;
            _plan         = string.Empty;
            _fact         = string.Empty;
            _next         = string.Empty;
            _idActivity   = 1;
            _commRD       = string.Empty;
            _status       = VisitStatus.Planed;
            _haveNewVisit = false;

            Init();
            SetDefaultHour();
            SetEditRightVisit();
        }
Beispiel #13
0
        public Visit(Visit visit1, DateTime date)
        {
            _id = 0;
            this._idUser = visit1._idUser;
            this._dateVisit = date;
            this._idULPU = visit1._idULPU;
            this._plan = visit1._plan;

            _fact = string.Empty;
            _next = string.Empty;
            _idActivity = 1;
            _commRD = string.Empty;
            _status = VisitStatus.Planed;
            _haveNewVisit = false;

            Init();
            SetDefaultHour();
            SetEditRightVisit();
        }
Beispiel #14
0
        public async Task <VisitStatus> GetOrderStatus(string visit_id)
        {
            Answer      answer = new Answer();
            VisitStatus qrobj  = new VisitStatus();

            try
            {
                answer = await networkservice.GetOrderState(authmanager.GetAuthData(), visit_id);

                if (answer != null && answer.ResData is JObject jData)
                {
                    qrobj = JsonConvert.DeserializeObject <VisitStatus>(jData.ToString());
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e);
            }
            return(qrobj);
        }
Beispiel #15
0
        private void getVisitAndFillFields()
        {
            DataTable dt1 = _sql1.GetRecords("exec VisitPlanDay_Select_ByID @p1, @p2", _id, _idUser);

            int.TryParse(dt1.Rows[0].ItemArray[2].ToString(), out _idULPU);
            DateTime.TryParse(dt1.Rows[0].ItemArray[3].ToString(), out _dateVisit);
            _plan = dt1.Rows[0].ItemArray[4].ToString();
            _fact = dt1.Rows[0].ItemArray[5].ToString();
            _next = dt1.Rows[0].ItemArray[6].ToString();
            int.TryParse(dt1.Rows[0].ItemArray[7].ToString(), out _idActivity);
            _commRD = dt1.Rows[0].ItemArray[8].ToString();
            _status = (VisitStatus)dt1.Rows[0].ItemArray[9];

            if (dt1.Rows[0].ItemArray[10].ToString() != string.Empty)
            {
                _haveNewVisit = true;
                DateTime.TryParse(dt1.Rows[0].ItemArray[10].ToString(), out _dateNewVisit);
            }
            else
            {
                _haveNewVisit = false;
            }
        }
Beispiel #16
0
        private void getVisitAndFillFields()
        {
            DataTable dt1 = _sql1.GetRecords("exec VisitPlanDay_Select_ByID @p1, @p2", _id, _idUser);

            int.TryParse(dt1.Rows[0].ItemArray[2].ToString(), out _idULPU);
            DateTime.TryParse(dt1.Rows[0].ItemArray[3].ToString(), out _dateVisit);
            _plan = dt1.Rows[0].ItemArray[4].ToString();
            _fact = dt1.Rows[0].ItemArray[5].ToString();
            _next = dt1.Rows[0].ItemArray[6].ToString();
            int.TryParse(dt1.Rows[0].ItemArray[7].ToString(), out _idActivity);
            _commRD = dt1.Rows[0].ItemArray[8].ToString();
            _status = (VisitStatus)dt1.Rows[0].ItemArray[9];

            if (dt1.Rows[0].ItemArray[10].ToString() != string.Empty)
            {
                _haveNewVisit = true;
                DateTime.TryParse(dt1.Rows[0].ItemArray[10].ToString(), out _dateNewVisit);
            }
            else
                _haveNewVisit = false;
        }
Beispiel #17
0
        /// <summary>
        /// <see cref="MyCompany.Visitors.Client.IVisitService"/>
        /// </summary>
        /// <param name="status"><see cref="MyCompany.Visitors.Client.IVisitService"/></param>
        /// <param name="visitId"><see cref="MyCompany.Visitors.Client.IVisitService"/></param>
        /// <returns><see cref="MyCompany.Visitors.Client.IVisitService"/></returns>
        public async Task UpdateStatus(int visitId, VisitStatus status)
        {
            string url = String.Format(CultureInfo.InvariantCulture
              , "{0}api/visits/{1}/update/{2}", _urlPrefix, visitId, (int)status);

            await base.PutAsync<VisitStatus>(url, status);
        }
        private void VisitSubQueryFromClause(MainFromClause fromClause, SubQueryExpression subQuery)
        {
            if (subQuery.QueryModel.ResultOperators.Any(p => p is GroupResultOperator))
            {
                // We're applying functions like HAVING clauses after grouping

                _visitStatus = VisitStatus.InGroupSubquery;
                _queryGenerationContext.GroupingQuerySource = new QuerySourceReferenceExpression(fromClause);

                VisitQueryModel(subQuery.QueryModel);

                _visitStatus = VisitStatus.AfterGroupSubquery;
            }
            else if (subQuery.QueryModel.ResultOperators.Any(p => p is UnionResultOperator || p is ConcatResultOperator))
            {
                // We're applying ORDER BY clauses after a UNION statement is completed

                _visitStatus = VisitStatus.InUnionSortSubquery;

                VisitQueryModel(subQuery.QueryModel);

                _visitStatus = VisitStatus.AfterUnionSortSubquery;

                // When visiting the order by clauses after a union, member references shouldn't include extent names.
                // Instead, they should reference the name of the columns without an extent qualifier.
                _queryGenerationContext.ExtentNameProvider.SetBlankExtentName(fromClause);
            }
            else
            {
                throw new NotSupportedException("Subqueries In The Main From Clause Are Only Supported For Grouping And Unions");
            }
        }
Beispiel #19
0
 private VisitorScope(VisitStatus status, Action after, Optional <TData> data)
 {
     Status = status;
     After  = after;
     Data   = data;
 }
Beispiel #20
0
 private VisitorScope(VisitStatus status, Action after)
 {
     Status = status;
     After  = after;
     Data   = Optional <TData> .Null;
 }
Beispiel #21
0
        public async Task <VisitStatus> LoadOrderState(string visit_id)
        {
            VisitStatus visit_state = await qrmanager.GetOrderStatus(visit_id);

            return(visit_state);
        }
 public ChainedAdapter(TestVisitor visitor, VisitStatus status)
 {
     Visitor = visitor;
     Status  = status;
 }