示例#1
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
			criteria.ProcedureStep.Scheduling.StartTime.IsNotNull();	// only want steps that are actually scheduled
			return new[] { criteria };
		}
示例#2
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.Report.Status.EqualTo(ReportStatus.C);
            return(new[] { criteria });
        }
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);	//bug #3498: exclude procedures that are no longer in SC status 
			return new WorklistItemSearchCriteria[] { criteria };
		}
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            return(new[] { criteria });
        }
示例#5
0
        /// <summary>
        /// Gets the HQL for debugging purposes only.
        /// </summary>
        /// <param name="worklist"></param>
        /// <param name="wqc"></param>
        /// <returns></returns>
        public virtual string GetWorklistItemsHql(Worklist worklist, IWorklistQueryContext wqc)
        {
            var args  = new WorklistQueryArgs(worklist, wqc, false);
            var query = BuildWorklistQuery(args);

            return(query.Hql);
        }
        private static ReportingWorklistItemSearchCriteria BuildCommonCriteria(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP, ActivityStatus.SU });
            return(criteria);
        }
示例#7
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
			criteria.ProcedureStep.Scheduling.Performer.Staff.IsNull();
			return new[] { criteria };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
			criteria.ProcedureCheckIn.CheckInTime.IsNull();     // exclude anything already checked-in
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#9
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.In(new[] { ActivityStatus.IP });
			criteria.ProcedureStep.Performer.Staff.EqualTo(wqc.ExecutingStaff);
			return new WorklistItemSearchCriteria[] { criteria };
		}
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            ModalityWorklistItemSearchCriteria criteria = new ModalityWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.IP);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#11
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            ModalityWorklistItemSearchCriteria criteria = new ModalityWorklistItemSearchCriteria();
            criteria.ProcedureCheckIn.CheckInTime.IsNull(); // not checked in
            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            return new WorklistItemSearchCriteria[] { criteria };
        }
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
			criteria.Report.Status.EqualTo(ReportStatus.D);
			return new[] { criteria };
		}
示例#13
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);              //bug #3498: exclude procedures that are no longer in SC status
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#14
0
        /// <summary>
        /// Gets the set of worklist items in the specified worklist.
        /// </summary>
        /// <remarks>
        /// Subclasses may override this method but in most cases this should not be necessary.
        /// </remarks>
        public virtual IList <TItem> GetWorklistItems <TItem>(Worklist worklist, IWorklistQueryContext wqc)
            where TItem : WorklistItem
        {
            var args  = new WorklistQueryArgs(worklist, wqc, false);
            var query = BuildWorklistQuery(args);

            return(DoQuery <TItem>(query, this.WorklistItemQueryBuilder, args));
        }
示例#15
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ProtocolingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
			criteria.ProcedureStep.Scheduling.Performer.Staff.EqualTo(wqc.ExecutingStaff);
			criteria.Protocol.Status.EqualTo(ProtocolStatus.PN);
			return new WorklistItemSearchCriteria[] { criteria };
		}
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            ModalityWorklistItemSearchCriteria criteria = new ModalityWorklistItemSearchCriteria();

            criteria.ProcedureCheckIn.CheckInTime.IsNull(); // not checked in
            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#17
0
        /// <summary>
        /// Gets the criteria established by the worklist filters.
        /// </summary>
        /// <param name="wqc"></param>
        /// <returns></returns>
        protected virtual WorklistItemSearchCriteria[] GetFilterCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new WorklistItemSearchCriteria();

            ApplyFilterCriteria(criteria, wqc);

            return(new[] { criteria });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            criteria.ProcedureStep.Scheduling.StartTime.IsNotNull();                    // only want steps that are actually scheduled
            return(new[] { criteria });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC });
            criteria.ProcedureStep.Scheduling.Performer.Staff.EqualTo(wqc.ExecutingStaff);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#20
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
            criteria.ProcedureCheckIn.CheckInTime.IsNull();                 // exclude anything already checked-in
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#21
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.Procedure.Status.In(new[] { ProcedureStatus.DC, ProcedureStatus.CA });

            return(new WorklistItemSearchCriteria[] { criteria });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ReportingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            criteria.ProcedureStep.Scheduling.Performer.Staff.IsNull();
            criteria.ProcedureStep.Scheduling.StartTime.IsNotNull();
            return(new [] { criteria });
        }
示例#23
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(ProcedureSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.Portable.EqualTo(this.Value);
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ProtocolingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.In(new [] { ActivityStatus.SC, ActivityStatus.IP });
            criteria.Protocol.Author.EqualTo(wqc.ExecutingStaff);
            criteria.Protocol.Status.EqualTo(ProtocolStatus.AA);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ProtocolingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.DC);
            criteria.ProcedureStep.Performer.Staff.EqualTo(wqc.ExecutingStaff);
            criteria.Protocol.Status.EqualTo(ProtocolStatus.RJ);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#26
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			// this is slightly different than the registration scheduled worklist, because we include
			// 'checked in' items here, rather than having a separate 'checked in' worklist
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
			//criteria.Order.Status.EqualTo(OrderStatus.SC);
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#27
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ProtocolingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
			criteria.ProcedureStep.Scheduling.Performer.Staff.IsNull();
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);	//bug #3498: exclude procedures that are no longer in SC status 
			criteria.Protocol.Status.EqualTo(ProtocolStatus.PN);
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#28
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(ExternalPractitionerSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.In(this.Values);
        }
示例#29
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(VisitSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.CurrentLocation.In(this.Values);
        }
示例#30
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(DepartmentSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.In(this.Values);
        }
示例#31
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(ProcedureTypeSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.In(this.Values);
        }
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);	//bug #3498: exclude procedures that are no longer in SC status 

			// any procedures with pending protocol assignment, where the procedure scheduled start time is filtered
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#33
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
            criteria.ProcedureCheckIn.CheckInTime.IsNotNull();              // include only items that have been checked-in
            criteria.ProcedureCheckIn.CheckOutTime.IsNull();
            return(new WorklistItemSearchCriteria[] { criteria });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new ProtocolingWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
            criteria.ProcedureStep.Scheduling.Performer.Staff.IsNull();
            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);              //bug #3498: exclude procedures that are no longer in SC status
            criteria.Protocol.Status.EqualTo(ProtocolStatus.PN);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#35
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            // this is slightly different than the registration scheduled worklist, because we include
            // 'checked in' items here, rather than having a separate 'checked in' worklist
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
            //criteria.Order.Status.EqualTo(OrderStatus.SC);
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#36
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
            criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);              //bug #3498: exclude procedures that are no longer in SC status

            // any procedures with pending protocol assignment, where the procedure scheduled start time is filtered
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#37
0
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            // "completed" in this context just means the patient has checked-out
            // the order may still be in progress
            var criteria = new RegistrationWorklistItemSearchCriteria();

            criteria.Procedure.Status.In(new[] { ProcedureStatus.IP, ProcedureStatus.CM });
            criteria.ProcedureCheckIn.CheckOutTime.IsNotNull();
            return(new WorklistItemSearchCriteria[] { criteria });
        }
示例#38
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var performerCriteria = BuildCommonCriteria(wqc);
			performerCriteria.ProcedureStep.Performer.Staff.IsNotNull();

			var scheduledPerformerCriteria = BuildCommonCriteria(wqc);
			scheduledPerformerCriteria.ProcedureStep.Scheduling.Performer.Staff.IsNotNull();

			return new[] { performerCriteria, scheduledPerformerCriteria };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var assignedToMe = BaseCriteria();
			assignedToMe.ProcedureStep.Scheduling.Performer.Staff.EqualTo(wqc.ExecutingStaff);

			var bySupervisor = BaseCriteria();
			bySupervisor.ReportPart.Supervisor.EqualTo(wqc.ExecutingStaff);

			return new[] { assignedToMe, bySupervisor };
		}
示例#40
0
        /// <summary>
        /// Applies this filter to the specified criteria object.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="wqc"></param>
        public void Apply(OrderSearchCriteria criteria, IWorklistQueryContext wqc)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            criteria.Priority.In(
                CollectionUtils.Map(this.Values,
                                    (OrderPriorityEnum v) => (OrderPriority)Enum.Parse(typeof(OrderPriority), v.Code)));
        }
示例#41
0
            protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
            {
                var criteria = new RegistrationWorklistItemSearchCriteria();

                criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);

                // only unscheduled items should appear in this list
                criteria.Procedure.ScheduledStartTime.IsNull();

                return(new WorklistItemSearchCriteria[] { criteria });
            }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var assignedToMe = BaseCriteria();

            assignedToMe.ProcedureStep.Scheduling.Performer.Staff.EqualTo(wqc.ExecutingStaff);

            var bySupervisor = BaseCriteria();

            bySupervisor.ReportPart.Supervisor.EqualTo(wqc.ExecutingStaff);

            return(new[] { assignedToMe, bySupervisor });
        }
        protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
        {
            var performerCriteria = BuildCommonCriteria(wqc);

            performerCriteria.ProcedureStep.Performer.Staff.IsNotNull();

            var scheduledPerformerCriteria = BuildCommonCriteria(wqc);

            scheduledPerformerCriteria.ProcedureStep.Scheduling.Performer.Staff.IsNotNull();

            return(new[] { performerCriteria, scheduledPerformerCriteria });
        }
示例#44
0
		/// <summary>
		/// Constructor.
		/// </summary>
		/// <param name="worklist"></param>
		/// <param name="wqc"></param>
		/// <param name="countQuery"></param>
		public WorklistQueryArgs(Worklist worklist, IWorklistQueryContext wqc, bool countQuery)
		{
			this.Worklist = worklist;
			this.QueryContext = wqc;
			this.FilterCriteria = worklist.GetFilterCriteria(wqc);

			// init base class
			Initialize(
				worklist.GetProcedureStepSubclasses(),
				worklist.GetInvariantCriteria(wqc),
				countQuery ? null : worklist.GetProjection(),
				wqc.Page);
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteriaNotEqual = new ReportingWorklistItemSearchCriteria();
			criteriaNotEqual.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
			criteriaNotEqual.ReportPart.Interpreter.EqualTo(wqc.ExecutingStaff);
			criteriaNotEqual.ProcedureStep.Scheduling.Performer.Staff.NotEqualTo(wqc.ExecutingStaff);

			var criteriaNull = new ReportingWorklistItemSearchCriteria();
			criteriaNull.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP });
			criteriaNull.ReportPart.Interpreter.EqualTo(wqc.ExecutingStaff);
			criteriaNull.ProcedureStep.Scheduling.Performer.Staff.IsNull();

			return new WorklistItemSearchCriteria[] { criteriaNotEqual, criteriaNull };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			// "completed" in this context just means the patient has checked-out
			// the order may still be in progress
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.Procedure.Status.In(new[] { ProcedureStatus.IP, ProcedureStatus.CM });
			criteria.ProcedureCheckIn.CheckOutTime.IsNotNull();
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#47
0
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var unsupervised = new ReportingWorklistItemSearchCriteria();
			unsupervised.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.CM });
			unsupervised.ReportPart.Verifier.EqualTo(wqc.ExecutingStaff);

			var supervised = new ReportingWorklistItemSearchCriteria();
			supervised.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.CM });
			supervised.ReportPart.Verifier.NotEqualTo(wqc.ExecutingStaff);
			supervised.ReportPart.Interpreter.EqualTo(wqc.ExecutingStaff);

			return new WorklistItemSearchCriteria[] { unsupervised, supervised };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);
			criteria.ProcedureCheckIn.CheckInTime.IsNotNull();  // include only items that have been checked-in
			criteria.ProcedureCheckIn.CheckOutTime.IsNull();
			return new WorklistItemSearchCriteria[] { criteria };
		}
		public override int GetWorklistItemCount(IWorklistQueryContext wqc)
		{
			return wqc.GetBroker<IRegistrationWorklistItemBroker>().CountWorklistItems(this, wqc);
		}
		public override string GetWorklistItemsHql(IWorklistQueryContext wqc)
		{
			return wqc.GetBroker<IRegistrationWorklistItemBroker>().GetWorklistItemsHql(this, wqc);
		}
		public override IList GetWorklistItems(IWorklistQueryContext wqc)
		{
			return (IList)wqc.GetBroker<IRegistrationWorklistItemBroker>().GetWorklistItems<WorklistItem>(this, wqc);
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.Procedure.Status.In(new[] { ProcedureStatus.DC, ProcedureStatus.CA });

			return new WorklistItemSearchCriteria[] { criteria };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.CM);

			// only unscheduled procedures should be in this list
			criteria.Procedure.ScheduledStartTime.IsNull();
			criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);

			// checked in procedures are also in the scheduled status and may or may not have no scheduled start time
			// but they should be excluded since there is no reason to schedule a patient who is already here
			criteria.ProcedureCheckIn.CheckInTime.IsNull();

			return new WorklistItemSearchCriteria[] { criteria };
		}
		protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new RegistrationWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.EqualTo(ActivityStatus.SC);
			return new WorklistItemSearchCriteria[] { criteria };
		}
示例#55
0
文件: Worklist.cs 项目: nhannd/Xian
		/// <summary>
		/// Gets the criteria established by the worklist filters.
		/// </summary>
		/// <param name="wqc"></param>
		/// <returns></returns>
		protected virtual WorklistItemSearchCriteria[] GetFilterCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new WorklistItemSearchCriteria();

			ApplyFilterCriteria(criteria, wqc);

			return new[] { criteria };
		}
示例#56
0
文件: Worklist.cs 项目: nhannd/Xian
		/// <summary>
		/// Modifies the specified criteria to represent the filters that are set for this worklist.
		/// </summary>
		/// <param name="criteria"></param>
		/// <param name="wqc"></param>
		protected void ApplyFilterCriteria(WorklistItemSearchCriteria criteria, IWorklistQueryContext wqc)
		{
			this.ProcedureTypeFilter.Apply(criteria.Procedure.Type, wqc);
			this.ProcedureTypeGroupFilter.Apply(criteria.Procedure.Type, wqc);
			this.FacilityFilter.Apply(criteria.Procedure.PerformingFacility, wqc);
			this.DepartmentFilter.Apply(criteria.Procedure.PerformingDepartment, wqc);
			this.OrderPriorityFilter.Apply(criteria.Order, wqc);
			this.PatientClassFilter.Apply(criteria.Visit, wqc);
			this.PatientLocationFilter.Apply(criteria.Visit, wqc);
			this.OrderingPractitionerFilter.Apply(criteria.Order.OrderingPractitioner, wqc);
			this.PortableFilter.Apply(criteria.Procedure, wqc);

			// note: the TimeFilter is treated as part of the invariant criteria, so it is not processed here
		}
		public override int GetWorklistItemCount(IWorklistQueryContext wqc)
		{
			// TODO: ProtocollingWorklistQueryBuilder may not be exactly correct because it contains an additional constraint
			return wqc.GetBroker<IProtocolWorklistItemBroker>().CountWorklistItems(this, wqc);
		}
			protected override WorklistItemSearchCriteria[] GetInvariantCriteriaCore(IWorklistQueryContext wqc)
			{
				var criteria = new RegistrationWorklistItemSearchCriteria();
				criteria.Procedure.Status.EqualTo(ProcedureStatus.SC);

				// only unscheduled items should appear in this list
				criteria.Procedure.ScheduledStartTime.IsNull();

				return new WorklistItemSearchCriteria[] { criteria };
			}
示例#59
0
		protected override WorklistItemSearchCriteria[] GetFilterCriteriaCore(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();

			// apply base filters
			ApplyFilterCriteria(criteria, wqc);

			// add reporting-specific filters
			if (GetSupportsReportingStaffRoleFilter(GetClass()))
			{
				this.InterpretedByStaffFilter.Apply(criteria.ReportPart.Interpreter, wqc);
				this.TranscribedByStaffFilter.Apply(criteria.ReportPart.Transcriber, wqc);
				this.VerifiedByStaffFilter.Apply(criteria.ReportPart.Verifier, wqc);
				this.SupervisedByStaffFilter.Apply(criteria.ReportPart.Supervisor, wqc);
			}

			return new[] { criteria };
		}
示例#60
0
		private static ReportingWorklistItemSearchCriteria BuildCommonCriteria(IWorklistQueryContext wqc)
		{
			var criteria = new ReportingWorklistItemSearchCriteria();
			criteria.ProcedureStep.State.In(new[] { ActivityStatus.SC, ActivityStatus.IP, ActivityStatus.SU });
			return criteria;
		}