Exemple #1
0
			/// <summary>
			/// Constructor
			/// </summary>
			/// <param name="timeField"></param>
			/// <param name="defaultRange"></param>
			/// <param name="ordering"></param>
			/// <param name="honourOrderPriority"> </param>
			public TimeDirective(WorklistItemField timeField, WorklistTimeRange defaultRange, WorklistOrdering ordering, bool honourOrderPriority)
			{
				this.TimeField = timeField;
				this.Ordering = ordering;
				this.DefaultRange = defaultRange;
				this.HonourOrderPriority = honourOrderPriority;
			}
Exemple #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="timeField"></param>
 /// <param name="defaultRange"></param>
 /// <param name="ordering"></param>
 /// <param name="honourOrderPriority"> </param>
 public TimeDirective(WorklistItemField timeField, WorklistTimeRange defaultRange, WorklistOrdering ordering, bool honourOrderPriority)
 {
     this.TimeField           = timeField;
     this.Ordering            = ordering;
     this.DefaultRange        = defaultRange;
     this.HonourOrderPriority = honourOrderPriority;
 }
        /// <summary>
        /// Initialize this worklist item from the specified procedure step and related entities.
        /// </summary>
        /// <param name="step"></param>
        /// <param name="timeField"></param>
        /// <remarks>
        /// This method is not efficient for generating a large number of worklist items from a large set of procedure steps,
        /// because it causes a large number of secondary references and collections to be initiliazed.
        /// Use <see cref="InitializeFromTuple"/> instead.
        /// </remarks>
        public virtual void InitializeFromProcedureStep(ProcedureStep step, WorklistItemField timeField)
        {
            var rp = step.Procedure;
            var o  = step.Procedure.Order;
            var v  = step.Procedure.Order.Visit;
            var p  = step.Procedure.Order.Patient;
            var pp = step.Procedure.Order.Patient.GetProfile(rp.PerformingFacility);

            this.ProcedureStepRef  = step.GetRef();
            this.ProcedureRef      = rp.GetRef();
            this.OrderRef          = o.GetRef();
            this.PatientRef        = p.GetRef();
            this.PatientProfileRef = pp.GetRef();
            this.Mrn                   = pp.Mrn;
            this.PatientName           = pp.Name;
            this.AccessionNumber       = o.AccessionNumber;
            this.OrderPriority         = o.Priority;
            this.PatientClass          = v.PatientClass;
            this.DiagnosticServiceName = o.DiagnosticService.Name;
            this.ProcedureName         = rp.Type.Name;
            this.ProcedurePortable     = rp.Portable;
            this.ProcedureLaterality   = rp.Laterality;
            this.ProcedureStepName     = step.Name;
            this.ActivityStatus        = step.State;
            this.Time                  = GetTimeValue(step, timeField);
        }
        /// <summary>
        /// Gets the value for the specified time field from the specified procedure step or its associated entities.
        /// </summary>
        /// <param name="step"></param>
        /// <param name="timeField"></param>
        /// <returns></returns>
        protected virtual DateTime?GetTimeValue(ProcedureStep step, WorklistItemField timeField)
        {
            if (timeField == WorklistItemField.OrderSchedulingRequestTime)
            {
                return(step.Procedure.Order.SchedulingRequestTime);
            }

            if (timeField == WorklistItemField.ProcedureScheduledStartTime)
            {
                return(step.Procedure.ScheduledStartTime);
            }

            if (timeField == WorklistItemField.ProcedureCheckInTime)
            {
                return(step.Procedure.ProcedureCheckIn.CheckInTime);
            }

            if (timeField == WorklistItemField.ProcedureCheckOutTime)
            {
                return(step.Procedure.ProcedureCheckIn.CheckOutTime);
            }

            if (timeField == WorklistItemField.ProcedureStartTime)
            {
                return(step.Procedure.StartTime);
            }

            if (timeField == WorklistItemField.ProcedureEndTime)
            {
                return(step.Procedure.EndTime);
            }

            if (timeField == WorklistItemField.ProcedureStepCreationTime)
            {
                return(step.CreationTime);
            }

            if (timeField == WorklistItemField.ProcedureStepScheduledStartTime)
            {
                return(step.Scheduling != null ? step.Scheduling.StartTime : null);
            }

            if (timeField == WorklistItemField.ProcedureStepStartTime)
            {
                return(step.StartTime);
            }

            if (timeField == WorklistItemField.ProcedureStepEndTime)
            {
                return(step.EndTime);
            }

            throw new WorkflowException("Invalid time field");
        }
		protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField)
		{
			// add the "HasErrors" flag for this worklist
			return base.GetProjectionCore(timeField).AddFields(new[] { WorklistItemField.ReportPartHasErrors });
		}
 /// <summary>
 /// Gets the default worklist item projection using the specified time field.
 /// </summary>
 /// <param name="timeField"></param>
 /// <returns></returns>
 public static WorklistItemProjection GetDefaultProjection(WorklistItemField timeField)
 {
     return(_procedureStepBase.AddFields(new[] { timeField }));
 }
 /// <summary>
 /// Gets the reporting worklist item projection using the specified time field.
 /// </summary>
 /// <param name="timeField"></param>
 /// <returns></returns>
 public static WorklistItemProjection GetReportingProjection(WorklistItemField timeField)
 {
     return(_reportingBase.AddFields(new[] { timeField }));
 }
		/// <summary>
		/// Gets the sub-criteria object associated with the specified time field.
		/// </summary>
		/// <param name="timeField"></param>
		/// <returns></returns>
		public ISearchCriteria GetTimeFieldSubCriteria(WorklistItemField timeField)
		{
			return _timeFieldSubCriteriaMappings[timeField](this);
		}
		protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField)
		{
			return WorklistItemProjection.GetDefaultProjection(timeField);
		}
Exemple #10
0
		/// <summary>
		/// Gets the reporting worklist item projection using the specified time field.
		/// </summary>
		/// <param name="timeField"></param>
		/// <returns></returns>
		public static WorklistItemProjection GetReportingProjection(WorklistItemField timeField)
		{
			return _reportingBase.AddFields(new[] { timeField });
		}
Exemple #11
0
		/// <summary>
		/// Initialize this worklist item from the specified procedure step and related entities.
		/// </summary>
		/// <param name="step"></param>
		/// <param name="timeField"></param>
		/// <remarks>
		/// This method is not efficient for generating a large number of worklist items from a large set of procedure steps,
		/// because it causes a large number of secondary references and collections to be initiliazed.
		/// Use <see cref="InitializeFromTuple"/> instead.
		/// </remarks>
		public virtual void InitializeFromProcedureStep(ProcedureStep step, WorklistItemField timeField)
		{
			var rp = step.Procedure;
			var o = step.Procedure.Order;
			var v = step.Procedure.Order.Visit;
			var p = step.Procedure.Order.Patient;
			var pp = step.Procedure.Order.Patient.GetProfile(rp.PerformingFacility);

			this.ProcedureStepRef = step.GetRef();
			this.ProcedureRef = rp.GetRef();
			this.OrderRef = o.GetRef();
			this.PatientRef = p.GetRef();
			this.PatientProfileRef = pp.GetRef();
			this.Mrn = pp.Mrn;
			this.PatientName = pp.Name;
			this.AccessionNumber = o.AccessionNumber;
			this.OrderPriority = o.Priority;
			this.PatientClass = v.PatientClass;
			this.DiagnosticServiceName = o.DiagnosticService.Name;
			this.ProcedureName = rp.Type.Name;
			this.ProcedurePortable = rp.Portable;
			this.ProcedureLaterality = rp.Laterality;
			this.ProcedureStepName = step.Name;
			this.ActivityStatus = step.State;
			this.Time = GetTimeValue(step, timeField);
		}
 /// <summary>
 /// Gets the setter for the specified field.
 /// </summary>
 /// <param name="field"></param>
 /// <returns></returns>
 protected virtual WorklistItemFieldSetterDelegate GetFieldSetter(WorklistItemField field)
 {
     return(_fieldSetters[field]);
 }
 protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField)
 {
     return(WorklistItemProjection.GetDefaultProjection(timeField));
 }
 protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField)
 {
     // add the "HasErrors" flag for this worklist
     return(base.GetProjectionCore(timeField).AddFields(new[] { WorklistItemField.ReportPartHasErrors }));
 }
Exemple #15
0
		/// <summary>
		/// Gets the setter for the specified field.
		/// </summary>
		/// <param name="field"></param>
		/// <returns></returns>
		protected virtual WorklistItemFieldSetterDelegate GetFieldSetter(WorklistItemField field)
		{
			return _fieldSetters[field];
		}
Exemple #16
0
			/// <summary>
			/// Constructor
			/// </summary>
			/// <param name="timeField"></param>
			/// <param name="defaultRange"></param>
			/// <param name="ordering"></param>
			public TimeDirective(WorklistItemField timeField, WorklistTimeRange defaultRange, WorklistOrdering ordering)
				:this(timeField, defaultRange, ordering, false)
			{
			}
Exemple #17
0
		/// <summary>
		/// Gets the worklist item projection required to populate worklist items for this worklist.
		/// </summary>
		/// <param name="timeField"></param>
		/// <returns></returns>
		protected abstract WorklistItemProjection GetProjectionCore(WorklistItemField timeField);
Exemple #18
0
		/// <summary>
		/// Gets the value for the specified time field from the specified procedure step or its associated entities.
		/// </summary>
		/// <param name="step"></param>
		/// <param name="timeField"></param>
		/// <returns></returns>
		protected virtual DateTime? GetTimeValue(ProcedureStep step, WorklistItemField timeField)
		{
			if (timeField == WorklistItemField.OrderSchedulingRequestTime)
				return step.Procedure.Order.SchedulingRequestTime;

			if (timeField == WorklistItemField.ProcedureScheduledStartTime)
				return step.Procedure.ScheduledStartTime;

			if (timeField == WorklistItemField.ProcedureCheckInTime)
				return step.Procedure.ProcedureCheckIn.CheckInTime;

			if (timeField == WorklistItemField.ProcedureCheckOutTime)
				return step.Procedure.ProcedureCheckIn.CheckOutTime;

			if (timeField == WorklistItemField.ProcedureStartTime)
				return step.Procedure.StartTime;

			if (timeField == WorklistItemField.ProcedureEndTime)
				return step.Procedure.EndTime;

			if (timeField == WorklistItemField.ProcedureStepCreationTime)
				return step.CreationTime;

			if (timeField == WorklistItemField.ProcedureStepScheduledStartTime)
				return step.Scheduling != null ? step.Scheduling.StartTime : null;

			if (timeField == WorklistItemField.ProcedureStepStartTime)
				return step.StartTime;

			if (timeField == WorklistItemField.ProcedureStepEndTime)
				return step.EndTime;

			throw new WorkflowException("Invalid time field");
		}
Exemple #19
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="timeField"></param>
 /// <param name="defaultRange"></param>
 /// <param name="ordering"></param>
 public TimeDirective(WorklistItemField timeField, WorklistTimeRange defaultRange, WorklistOrdering ordering)
     : this(timeField, defaultRange, ordering, false)
 {
 }
Exemple #20
0
 /// <summary>
 /// Gets the worklist item projection required to populate worklist items for this worklist.
 /// </summary>
 /// <param name="timeField"></param>
 /// <returns></returns>
 protected abstract WorklistItemProjection GetProjectionCore(WorklistItemField timeField);
 /// <summary>
 /// Gets the sub-criteria object associated with the specified time field.
 /// </summary>
 /// <param name="timeField"></param>
 /// <returns></returns>
 public ISearchCriteria GetTimeFieldSubCriteria(WorklistItemField timeField)
 {
     return(_timeFieldSubCriteriaMappings[timeField](this));
 }
Exemple #22
0
		/// <summary>
		/// Gets the default worklist item projection using the specified time field.
		/// </summary>
		/// <param name="timeField"></param>
		/// <returns></returns>
		public static WorklistItemProjection GetDefaultProjection(WorklistItemField timeField)
		{
			return _procedureStepBase.AddFields(new[] { timeField });
		}