/// <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); }
/// <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 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 })); }
/// <summary> /// Gets the setter for the specified field. /// </summary> /// <param name="field"></param> /// <returns></returns> protected virtual WorklistItemFieldSetterDelegate GetFieldSetter(WorklistItemField field) { return _fieldSetters[field]; }
/// <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) { }
/// <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 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"); }
/// <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) { }
/// <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)); }
/// <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 }); }